配置 Nginx Http Proxy 代理服務器,與 [Squid] 功能一樣,適用於正向代理 Http 網站。
一,Nginx 正向代理配置文件:
server { resolver 8.8.8.8; resolver_timeout 5s; listen 0.0.0.0:8080; access_log /home/reistlin/logs/proxy.access.log; error_log /home/reistlin/logs/proxy.error.log; location / { proxy_pass $scheme://$host$request_uri; proxy_set_header Host $http_host; proxy_buffers 256 4k; proxy_max_temp_file_size 0; proxy_connect_timeout 30; proxy_cache_valid 200 302 10m; proxy_cache_valid 301 1h; proxy_cache_valid any 1m; } }
二,Nginx 正向代理配置說明:
1,配置 DNS 解析 IP 地址,比如 Google Public DNS,以及超時時間(5秒)。
resolver 8.8.8.8; resolver_timeout 5s;
2,配置正向代理參數,均是由 Nginx 變量組成。其中 proxy_set_header 部分的配置,是為了解決如果 URL 中帶 "."(點)后 Nginx 503 錯誤。
proxy_pass $scheme://$host$request_uri; proxy_set_header Host $http_host;
3,配置緩存大小,關閉磁盤緩存讀寫減少I/O,以及代理連接超時時間。
proxy_buffers 256 4k; proxy_max_temp_file_size 0; proxy_connect_timeout 30;
4,配置代理服務器 Http 狀態緩存時間。
proxy_cache_valid 200 302 10m; proxy_cache_valid 301 1h; proxy_cache_valid any 1m;
三,不支持代理 Https 網站
因為 Nginx 不支持 CONNECT,所以無法正向代理 Https 網站(網上銀行,Gmail)。
如果訪問 Https 網站,比如:https://www.google.com,Nginx access.log 日志如下:
"CONNECT www.google.com:443 HTTP/1.1" 400