使用nginx正向代理實現(xiàn)訪問外網(wǎng)
需求1:某幾個ip的代理
server { listen 9000; # 監(jiān)聽端口 server_name localhost; set $url "proxy_server_doman_or_ip"; # 設(shè)置代理的域名或IP變量,這里替換成自己需要代理的網(wǎng)站 location / { proxy_pass http://$url:8082; # 將請求轉(zhuǎn)發(fā)到由 $url 變量表示的地址。 } }
需求2:域名網(wǎng)站的代理
server { listen 9000; # 監(jiān)聽端口 server_name localhost; # 設(shè)置DNS解析器的地址為8.8.8.8,并且設(shè)置了解析器的緩存時間為300秒(這樣每隔300s就會重新解析一次)。ipv6=off 是關(guān)閉IPv6的解析支持。 resolver 8.8.8.8 valid=300 ipv6=off; resolver_timeout 3s; # 設(shè)置解析DNS的超時時間為3秒 proxy_read_timeout 60s; proxy_send_timeout 60s; proxy_connect_timeout 60s; set $url "proxy_server_doman_or_ip"; # 設(shè)置代理的域名或IP變量,這里替換成自己需要代理的網(wǎng)站 location / { proxy_pass http://$url:9000; # 將請求轉(zhuǎn)發(fā)到由 $url 變量表示的地址。9000是目標(biāo)網(wǎng)站的端口。 proxy_buffers 256 4K; # 設(shè)置用于緩存后端響應(yīng)的緩沖區(qū)大小為256個,每個大小為4K。 proxy_max_temp_file_size 0; # 設(shè)置Nginx暫存響應(yīng)數(shù)據(jù)的最大臨時文件大小為0,即不使用臨時文件。 proxy_cache_valid 200 302 1m; # 針對狀態(tài)碼為200和302的響應(yīng),設(shè)置緩存有效期為1分鐘。 proxy_cache_valid 301 1h; # 針對狀態(tài)碼為301的響應(yīng),設(shè)置緩存有效期為1小時。 proxy_cache_valid any 1m; # 對于其他任何響應(yīng)狀態(tài)碼,設(shè)置緩存有效期為1分鐘。 } }
需求3:所有網(wǎng)站的代理
server { # 服務(wù)器監(jiān)聽的端口號為8080 listen 8080; # 服務(wù)器名稱為localhost server_name localhost; # 指定DNS服務(wù)器地址為114.114.114.114,禁用IPv6解析 resolver 114.114.114.114 ipv6=off; # 開啟HTTP CONNECT方法支持,用于建立與后端服務(wù)器的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 / { # 將請求轉(zhuǎn)發(fā)到代理目標(biāo) 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" 表示代理服務(wù)器已經(jīng)成功建立了連接
安裝nginx默認(rèn)不支持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 #進(jìn)入nginx目錄 cd nginx-1.20.2/ #使用patch命令導(dǎo)入補丁 注意路徑是否一致 我是直接在根目錄操作的 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服務(wù)器代理配置
linux代理服務(wù)器設(shè)置
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 為你的代理服務(wù)器ip和端口
使用source命令使其生效
source /etc/profile
到此這篇關(guān)于使用nginx正向代理實現(xiàn)訪問外網(wǎng)的文章就介紹到這了,更多相關(guān)nginx正向代理訪問外網(wǎng)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
nginx實現(xiàn)根據(jù)URL轉(zhuǎn)發(fā)請求的實戰(zhàn)經(jīng)歷
這篇文章主要給大家介紹了一次關(guān)于nginx實現(xiàn)根據(jù)URL轉(zhuǎn)發(fā)請求的實戰(zhàn)經(jīng)歷,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用nginx具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11權(quán)限問題導(dǎo)致Nginx 403 Forbidden錯誤的解決方法
這篇文章主要介紹了權(quán)限問題導(dǎo)致Nginx 403 Forbidden錯誤的解決方法,本文中導(dǎo)致 403 Forbidden錯誤的原因是配置文件中沒有指明一個用戶,需要的朋友可以參考下2014-08-08Nginx使用反向代理實現(xiàn)負(fù)載均衡過程解析
這篇文章主要介紹了Nginx使用反向代理實現(xiàn)負(fù)載均衡過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-09-09