使用nginx正向代理實(shí)現(xiàn)訪問外網(wǎng)
需求1:某幾個(gè)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è)置了解析器的緩存時(shí)間為300秒(這樣每隔300s就會重新解析一次)。ipv6=off 是關(guān)閉IPv6的解析支持。
resolver 8.8.8.8 valid=300 ipv6=off;
resolver_timeout 3s; # 設(shè)置解析DNS的超時(shí)時(shí)間為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個(gè),每個(gè)大小為4K。
proxy_max_temp_file_size 0; # 設(shè)置Nginx暫存響應(yīng)數(shù)據(jù)的最大臨時(shí)文件大小為0,即不使用臨時(shí)文件。
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小時(shí)。
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;
# 建立連接的超時(shí)時(shí)間為10秒
proxy_connect_connect_timeout 10s;
# 讀取數(shù)據(jù)的超時(shí)時(shí)間為10秒
proxy_connect_read_timeout 10s;
location / {
# 將請求轉(zhuǎn)發(fā)到代理目標(biāo)
proxy_pass $scheme://$http_host$request_uri;
}代理驗(yàn)證:
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)入補(bǔ)丁 注意路徑是否一致 我是直接在根目錄操作的 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編譯選項(xiàng),使其在編譯Nginx時(shí)包含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正向代理實(shí)現(xiàn)訪問外網(wǎng)的文章就介紹到這了,更多相關(guān)nginx正向代理訪問外網(wǎng)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
nginx實(shí)現(xiàn)根據(jù)URL轉(zhuǎn)發(fā)請求的實(shí)戰(zhàn)經(jīng)歷
這篇文章主要給大家介紹了一次關(guān)于nginx實(shí)現(xiàn)根據(jù)URL轉(zhuǎn)發(fā)請求的實(shí)戰(zhàn)經(jīng)歷,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用nginx具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11
權(quán)限問題導(dǎo)致Nginx 403 Forbidden錯(cuò)誤的解決方法
這篇文章主要介紹了權(quán)限問題導(dǎo)致Nginx 403 Forbidden錯(cuò)誤的解決方法,本文中導(dǎo)致 403 Forbidden錯(cuò)誤的原因是配置文件中沒有指明一個(gè)用戶,需要的朋友可以參考下2014-08-08
Nginx使用反向代理實(shí)現(xiàn)負(fù)載均衡過程解析
這篇文章主要介紹了Nginx使用反向代理實(shí)現(xiàn)負(fù)載均衡過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-09-09

