http 代理配置
# 正向代理上网 server { listen 38080; # 解析域名 resolver 8.8.8.8; location / { proxy_pass $scheme://$http_host$request_uri; } }
瀏覽器配置下代理ip 和端口,然後訪問http://www.ip138.com ,可以發現ip 已經變化了,說明生效了
然而訪問https 網站卻打不開,這是由於原生nginx 只支援http 正向代理,為了nginx 支援https 正向代理,可以打ngx_http_proxy_connect_module 補丁ssl 模組支援
新增https 代理程式模組
這裡需要重新編譯nginx,需要查看目前nginx 的版本和編譯選項,然後去官網下載同版本的nginx 原始碼重新編譯
/usr/local/nginx/sbin/nginx -v
wget http://nginx.org/download/nginx-1.15.12.tar.gz tar -zxvf nginx-1.15.12.tar.gz
下載模組ngx_http_proxy_connect_module
git clone https://github.com/chobits/ngx_http_proxy_connect_module
打補丁,對nginx 原始碼修改,這一步很重要,不然後面的make 過不去
patch -d /root/nginx-1.15.12/ -p 1 < /root/ngx_http_proxy_connect_module/patch/proxy_connect_rewrite
在原有配置後追加模組,make 後注意不要install
cd /root/nginx-1.15.12/ ./configure --with-http_stub_status_module --with-http_ssl_module --with-file-aio --with-http_realip_module --add-module=/root/ngx_http_proxy_connect_module/ make mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak cp /root/nginx-1.15.12/objs/nginx /usr/local/nginx/sbin/
更改設定檔如下,然後啟動服務
# 正向代理上网 server { listen 38080; # 解析域名 resolver 8.8.8.8; # ngx_http_proxy_connect_module proxy_connect; proxy_connect_allow 443 563; proxy_connect_connect_timeout 10s; proxy_connect_read_timeout 10s; proxy_connect_send_timeout 10s; location / { proxy_pass $scheme://$http_host$request_uri; } }
以上是如何使用Nginx代理上網的詳細內容。更多資訊請關注PHP中文網其他相關文章!