Nginx Http Proxy 代理服務器, 功能和 Squid 同樣,適用於正向代理 Http 網站。
需求以下: 1.有一臺nginx在國外 2.國內的用戶訪問web 經過先在本地 proxy服務器的ip和端口,而後可就能夠經過代理來訪問國外的全部網站了。 一.Nginx 正向代理配置文件: user nginx; worker_processes 1; error_log logs/error.log; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log logs/access.log main; server { resolver 8.8.8.8; resolver_timeout 5s; listen 8081; location / { proxy_pass $scheme://$host$request_uri; proxy_set_header Host $http_host; proxy_buffers 256 8k; 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 8k; 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