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