【代理】Nginx正向代理http、https
2019年09月27日 10:55:59 作者:Jiaozn 分类:Nginx 评论(0)1、按照说明文档下载对应的nginx patch、module,编译安装nginx
$ wget http://nginx.org/download/nginx-1.14.2.tar.gz
$ tar -xzvf nginx-1.14.2.tar.gz
$ cd nginx-1.14.2/
// 参考说明文档下载适合此版本nginx的patch
$ wget https://github.com/chobits/ngx_http_proxy_connect_module/blob/master/patch/proxy_connect_1014.patch
// 下载ngx_http_proxy_connect_module,解压到此目录
$ ll
-rw-r--r-- 1 root root 376 Jun 15 11:15 Makefile
drwxr-xr-x 5 root root 4096 Jun 15 11:13 ngx_http_proxy_connect_module-master
-rw-r--r-- 1 root root 9849 Jun 15 11:13 proxy_connect_1014.patch
$ patch -p1 < proxy_connect_1014.patch
$ ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --add-module=ngx_http_proxy_connect_module-master
$ make && make install
2、nginx配置
server {
listen 3128;
# dns resolver used by forward proxying
resolver 8.8.8.8;
# forward proxy for CONNECT request
proxy_connect;
proxy_connect_allow 443 563; #许可https和nntps协议通过
proxy_connect_connect_timeout 10s;
proxy_connect_read_timeout 10s;
proxy_connect_send_timeout 10s;
# forward proxy for non-CONNECT request
location / {
proxy_pass http://$host;
proxy_set_header Host $host;
}
}
3、测试
$ curl https://www.baidu.com/ -v -x 127.0.0.1:3128
----------------------------
手里现有一台公网win03服务器,想再来一台linux服务器,由于都是玩的,而且通过nginx可以将内网的发布出去linux服务器就没买带宽。原以为内网服务器外网可入不可出,没想到出入都不行,linux很多软件的安装直接用命令很方便,现在难道要先再win服务器上下载好再上传上去,悲剧了。还是先试试,在win服务器上开启了nat(路由和远程服务),理论上内网其他机器可以设置网管为win服务器的内网IP然后就可以共享上网了,结果在linux里设置网关失败,可能是两台服务器的内网IP不在同一网段上(两个IP都是10开头,但后面三段不同。以前用过IP前两段相同的可以设置),对linux还不是很熟,就没再多试。
还好win服务器上装着nginx,用nginx设置好正向代理,再修改下linux的代理配置,直接可以在linux服务器上使用 apt-get、npm等命令安装网络内容了。
1、win服务器nginx正向代理配置,再http{}中增加:
server{ resolver 10.161.209.111; #win服务器内网IP
listen 809; #代理上网的端口 location / {
console.log('Usage: <from> <to>'); return;} net.createServer(function(from) { var to = net.createConnection({ host: addr.to[2], port: addr.to[3] }); from.pipe(to); to.pipe(from);}).listen(addr.from[3], addr.from[2]);
保存为 forward.js运行:node forward.js 22 10.171.223.111:22
第一个22是win服务器的端口,后面ip:port指向到linux服务器好了,先可以通过ssh win服务器外网IP,直接连接到linux服务器了,也可以通过FileZilla的sftp通过ssh端口管理linux服务器文件了。
简单记录一下。帖子内容不能有网址,部分内容只好改图片了。
评论
发表评论