应用正向代理的场景,以及正向代理和反向代理的区别:
了解:
客户端 代理 服务器
A B C
正向: * B C
反向: A B *
正向暗藏客户端
反向暗藏服务端
1 查看文档
https://github.com/chobits/ngx_http_proxy_connect_module/blob/master/README.md
2 其中: 构建为动静模块
装置nginx 和 nginx_proxy_connect module
从nginx的1.9.11开始,你也能够作为一个动静模块,通过应用编译该模块--add-dynamic-module=PATH选项,而不是--add-module=PATH在对./configure命令行。
$ $ wget http://nginx.org/download/ngi...
$ tar -xzvf nginx-1.9.12.tar.gz
$ cd nginx-1.9.12/
$ patch -p1 < /path/to/ngx_http_proxy_connect_module/patch/proxy_connect.patch
$ ./configure --add-dynamic-module=/path/to/ngx_http_proxy_connect_module
$ make && make install
3 make可能遇到的问题
1 error: this statement may fall through [-Werror=implicit-fallthrough=]
2 “src/os/unix/ngx_user.c:26:7: error: ‘struct crypt_data’ has no member named ‘current_salt’”
问题1解决,正文掉这一行
vim /opt/nginx/nginx-1.9.2/src/os/unix/ngx_user.c
36 : / cd.current_salt[0] = ~salt[0];/
问题2解决,编译加上参数 :
make CFLAGS='-Wno-implicit-fallthrough';
make install;
4 实现后 配置 conf :
vim /usr/local/nginx/conf/nginx.conf
#user nobody;worker_processes 1;#error_log logs/error.log;#error_log logs/error.log notice;#error_log logs/error.log info;#pid logs/nginx.pid;events { worker_connections 1024;} http { include mime.types; default_type application/octet-stream; #access_log logs/access.log main; sendfile on; #tcp_nopush on; keepalive_timeout 65; #gzip on; server { listen 88; #监听端口 resolver 183.60.82.98; #dns解析地址 server_name _; #charset koi8-r; #access_log logs/host.access.log main; location / { proxy_pass https://$host$request_uri; #设定http代理服务器的协定和地址 proxy_set_header HOST $host; proxy_buffers 256 4k; proxy_max_temp_file_size 0k; proxy_connect_timeout 30; proxy_send_timeout 60; proxy_read_timeout 60; proxy_next_upstream error timeout invalid_header http_502; #root html; #index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } server { resolver 8.8.8.8; #dns解析地址 listen 89; #代理监听端口 proxy_connect; proxy_connect_allow 443 563; location / { proxy_pass $scheme://$host$request_uri; #设定https代理服务器的协定和地址 proxy_set_header HOST $host; proxy_buffers 256 4k; proxy_max_temp_file_size 0k; proxy_connect_timeout 30; proxy_send_timeout 60; proxy_read_timeout 60; proxy_next_upstream error timeout invalid_header http_502; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } }
启动 nginx
curl -i --proxy 192.168.3.17:89 www.baidu.com
后果 :