解决Nginx反代不转发真实IP的问题


说明

X-Forwarded-For 用于将客户真实 IP 转发到后端服务器。

配置示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
upstream apicluster {
server 172.31.20.21 weight=1 max_fails=2 fail_timeout=10s;
server 172.31.17.233 weight=1 max_fails=2 fail_timeout=10s;
server 172.31.22.225 weight=1 max_fails=2 fail_timeout=10s;
}

server {
listen 80;
server_name xxxx.com;

location / {
proxy_pass http://apicluster;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}

关键配置说明

配置项 说明
X-Real-IP 客户端真实 IP
X-Forwarded-For 代理链,多个 IP 会被逗号分隔
REMOTE-HOST 某些场景下需要的原始客户端 IP