nginx代理后端web获取用户真实IP
在后台 nginx 服务器的日志中记录真实客户端 IP,需要配置 log_format:
log_format main '$http_x_forwarded_for - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent"';
同时取消注释 access_log 指令。
在前端代理服务器上,需要在转发请求时添加真实 IP 信息头:
server {
listen 10.12.23.67;
server_name filestore.tr.com;
location / {
proxy_set_header Host $host;
proxy_pass http://myproject;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_redirect off;
}
}
X-Real-IP 保存直接连接到代理的客户端地址,X-Forwarded-For 保存整条代理链的客户端地址列表。后端应用根据需要选择使用其中一个头的值。