# HTTP 正向代理服务器配置
server {
listen 31011; # 代理服务监听端口
# 访问日志
#access_log /var/log/nginx/proxy.access.log proxy_format;
#error_log /var/log/nginx/proxy.error.log;
# DNS解析设置
resolver 8.8.8.8 114.114.114.114 valid=300s;
resolver_timeout 5s;
# 启用正向代理功能,并允许代理到443端口(HTTPS)
proxy_connect;
proxy_connect_allow 443;
proxy_connect_connect_timeout 10s;
proxy_connect_data_timeout 10s;
# 正向代理配置
location / {
# 允许所有客户端访问(生产环境应限制)
allow all;
# 设置代理请求头,传递原始主机名和客户端IP等信息:cite[1]:cite[8]
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# 代理连接超时设置
proxy_connect_timeout 30s;
proxy_read_timeout 30s;
proxy_send_timeout 30s;
# 代理缓冲设置
proxy_buffering on;
proxy_buffer_size 4k;
proxy_buffers 8 4k;
# 代理到目标HTTP服务器
proxy_pass http://$http_host;
}
}
配置说明与注意事项:
DNS 解析 (
resolver): 必须配置。Nginx 正向代理需要它来解析目标域名2。端口限制 (
proxy_connect_allow):proxy_connect_allow 443;表示只允许代理到目标服务器的 443 端口(HTTPS)。你也可以允许其他端口,如proxy_connect_allow 443 563;。访问控制: 上面的配置为了简洁,设置了
allow all。在生产环境中,强烈建议你使用allow和deny指令限制可以访问代理服务器的客户端 IP 地址范围,或者配置auth_basic进行用户名密码认证,以防止代理被滥用。日志: 可以使用
access_log和error_log指令记录代理访问日志,便于排查问题。
测试
curl -x http://192.168.1.111:31011 http://httpbin.org/ip
重要提醒
网络安全: 对外开放代理端口存在风险。务必使用防火墙(如
iptables或云服务器安全组)严格限制访问代理端口的源 IP,最好只允许你自己的内部网络或特定服务器访问。性能: 正向代理会消耗 Nginx 服务器的带宽和资源。如果代理请求量很大,请确保服务器有足够的性能支撑,并适当调整
worker_processes、worker_connections以及proxy_connect_timeout等参数。替代方案: 如果仅仅是为了在开发调试时代理微信请求,有时在代码中或网络库中直接设置 HTTP 代理可能更简单。但对于需要全局代理或复杂网络拓扑的情况,Nginx 正向代理是一个强大的工具。