使用nginx正向代理實現(xiàn)訪問外網
需求1:某幾個ip的代理
server { listen 9000; # 監(jiān)聽端口 server_name localhost; set $url "proxy_server_doman_or_ip"; # 設置代理的域名或IP變量,這里替換成自己需要代理的網站 location / { proxy_pass http://$url:8082; # 將請求轉發(fā)到由 $url 變量表示的地址。 } }
需求2:域名網站的代理
server { listen 9000; # 監(jiān)聽端口 server_name localhost; # 設置DNS解析器的地址為8.8.8.8,并且設置了解析器的緩存時間為300秒(這樣每隔300s就會重新解析一次)。ipv6=off 是關閉IPv6的解析支持。 resolver 8.8.8.8 valid=300 ipv6=off; resolver_timeout 3s; # 設置解析DNS的超時時間為3秒 proxy_read_timeout 60s; proxy_send_timeout 60s; proxy_connect_timeout 60s; set $url "proxy_server_doman_or_ip"; # 設置代理的域名或IP變量,這里替換成自己需要代理的網站 location / { proxy_pass http://$url:9000; # 將請求轉發(fā)到由 $url 變量表示的地址。9000是目標網站的端口。 proxy_buffers 256 4K; # 設置用于緩存后端響應的緩沖區(qū)大小為256個,每個大小為4K。 proxy_max_temp_file_size 0; # 設置Nginx暫存響應數(shù)據(jù)的最大臨時文件大小為0,即不使用臨時文件。 proxy_cache_valid 200 302 1m; # 針對狀態(tài)碼為200和302的響應,設置緩存有效期為1分鐘。 proxy_cache_valid 301 1h; # 針對狀態(tài)碼為301的響應,設置緩存有效期為1小時。 proxy_cache_valid any 1m; # 對于其他任何響應狀態(tài)碼,設置緩存有效期為1分鐘。 } }
需求3:所有網站的代理
server { # 服務器監(jiān)聽的端口號為8080 listen 8080; # 服務器名稱為localhost server_name localhost; # 指定DNS服務器地址為114.114.114.114,禁用IPv6解析 resolver 114.114.114.114 ipv6=off; # 開啟HTTP CONNECT方法支持,用于建立與后端服務器的TCP連接 proxy_connect; # 允許通過代理的端口,這里允許443和80端口 proxy_connect_allow 443 80; # 建立連接的超時時間為10秒 proxy_connect_connect_timeout 10s; # 讀取數(shù)據(jù)的超時時間為10秒 proxy_connect_read_timeout 10s; location / { # 將請求轉發(fā)到代理目標 proxy_pass $scheme://$http_host$request_uri; }
代理驗證:
curl -I https://blog.csdn.net/ -v -x 127.0.0.1:8080
如圖 出現(xiàn)"HTTP/1.1 200 Connection Established" 表示代理服務器已經成功建立了連接
安裝nginx默認不支持https,需要額外添加模塊ngx_http_proxy_connect_module。需確保模塊和Nginx版本匹配。
#安裝patch: yum install patch -y cd /root wget http://nginx.org/download/nginx-1.20.2.tar.gz #解壓 tar xf nginx-1.20.2.tar.gz #進入nginx目錄 cd nginx-1.20.2/ #使用patch命令導入補丁 注意路徑是否一致 我是直接在根目錄操作的 patch -p1 < /root/ngx_http_proxy_connect_module-0.0.2/patch/proxy_connect_rewrite_1018.patch
下面安裝nginx
#安裝編譯工具和庫 yum install gcc cmake make cmake unzip ncurses-devel gcc gcc-c++ -y #配置Nginx編譯選項,使其在編譯Nginx時包含ngx_http_proxy_connect_module-0.0.2模塊 ./configure --prefix=/usr/local/nginx --add-module=/root/ngx_http_proxy_connect_module-0.0.2 #編譯和安裝Nginx make && make install
windows服務器代理配置
linux代理服務器設置
vi /etc/profile #編輯/etc/profile文件 在最后一行加入 export http_proxy=192.168.0.97:8080 export https_proxy=192.168.0.97:8080 export ftp_proxy=192.168.0.97:8080 #192.168.0.97:8080 為你的代理服務器ip和端口
使用source命令使其生效
source /etc/profile
到此這篇關于使用nginx正向代理實現(xiàn)訪問外網的文章就介紹到這了,更多相關nginx正向代理訪問外網內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
nginx實現(xiàn)根據(jù)URL轉發(fā)請求的實戰(zhàn)經歷
這篇文章主要給大家介紹了一次關于nginx實現(xiàn)根據(jù)URL轉發(fā)請求的實戰(zhàn)經歷,文中通過示例代碼介紹的非常詳細,對大家學習或者使用nginx具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧2019-11-11權限問題導致Nginx 403 Forbidden錯誤的解決方法
這篇文章主要介紹了權限問題導致Nginx 403 Forbidden錯誤的解決方法,本文中導致 403 Forbidden錯誤的原因是配置文件中沒有指明一個用戶,需要的朋友可以參考下2014-08-08