Nginx反向代理域名, 前提条件是需要Nginx节点可以访问正常,否则Nginx健康检查过不去,对于Nginx反向代理对于配置模块没有额外要求,默认Nginx配置文件也可以
反向代理是否是80,443或者是否含有https接不影响,主要是Location配置文件部分
这里我使用Nginx代理baidu.com
完整配置文件如下
server {
listen 443 ssl http2 ;
server_name test.i4t.com; #这里请根据实际情况修改
index index.php index.html index.htm default.php default.htm default.html;
root /www/wwwroot/test.i4t.com;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
location ^~ / {
proxy_pass https://baidu.com.com; #这里请根据实际情况修改
proxy_set_header Host baidu.com.com; #这里请根据实际情况修改
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Real-Port $remote_port;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_ssl_server_name on;
proxy_connect_timeout 60s;
proxy_send_timeout 600s;
proxy_read_timeout 600s;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
}
}
参数解释如下
请求头设置类
- proxy_set_header Host baidu.com.com:强制将请求的Host头改写为指定域名
- X-Real-IP/X-Real-Port:传递客户端真实IP和端口,便于后端服务获取原始访问信息57
- X-Forwarded-For:追加代理链IP(非覆盖),形成完整的请求路径追踪链57
- X-Forwarded-Proto:声明客户端原始协议(http/https)
- X-Forwarded-Host/X-Forwarded-Port:传递原始访问的域名和端口
- REMOTE-HOST:兼容性字段,同样传递客户端IP5
- Upgrade/Connection:支持WebSocket协议升级的关键头
连接控制
- proxy_ssl_server_name on:启用SNI(服务器名称指示),支持HTTPS代理到多域名4
- proxy_connect_timeout 60s:建立代理连接的超时时间6
- proxy_send_timeout/proxy_read_timeout 600s:定义发送和接收数据的超时阈值6
协议配置
- proxy_http_version 1.1:强制使用HTTP/1.1协议,为长连接等特性提供支持
这些配置共同实现了请求转发、协议转换、超时控制等代理核心功能,适用于负载均衡、安全防护和协议转换等场景
其它玩法,仅供参考密码333

