问题描述:Docker部署时,请求可能通过容器反向代理、Docker网络桥接、宿主机端口映射等,导致获取到的是代理服务器ip或容器内网ip,而非真实客户端ip.
解决步骤:
修改nginx的配置
server {
listen 80;
server_name 你的域名或IP;
location / {
proxy_pass http://容器名或容器IP:端口; # 例如 http://tomcat:8080
# 透传真实IP相关头信息
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr; # 客户端真实IP
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 代理链IP列表
proxy_set_header X-Forwarded-Proto $scheme;
}
}