首頁 >運維 >Nginx >如何使用Nginx代理上網

如何使用Nginx代理上網

PHPz
PHPz轉載
2023-05-22 19:35:182069瀏覽

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中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除