如何在nginx中获取客户端的ip在上游?
现在我使用下一个配置:
上游监听程序
upstream ts {
server localhost:841 weight=10 max_fails=3 fail_timeout=10s;
server 10.1.3.209:8080 backup;
}服务器监听程序
server {
listen 80;
server_name 10.9.24.45;
location / {
proxy_pass http://ts;
proxy_set_header Host $host;
proxy_set_header X-Real_IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}应用监听器
server {
listen 841;
server_name localhost;
charset utf-8;
access_log /var/log/nginx/access_ts.log;
error_log /var/log/nginx/error_ts.log;
client_max_body_size 16M;
set $www /www;
set $root $www/apps/ts/ROOT;
include /etc/nginx/sites-available/locations;
location / {
proxy_pass http://localhost:840;
proxy_set_header Host $host;
proxy_set_header X-Real_IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
include /etc/nginx/sites-available/location-config;
}
}在我的java应用程序中,我使用X-Real_IP头来获取客户端的ip,一切正常,但在我开始使用另一个配置上游之后,我只看到了127.0.0.0。我认为这是正确的,但我需要为我的应用程序获得一个真正的ip。
如何获取nginx上行背后的真实ip?
我看到了一些答案,比如proxy_set_header realip $remote_addr,但是如果不改变我的java应用程序,我能做什么呢?
发布于 2014-05-13 02:20:32
我也有同样的问题,问题是你转发的报头改变了
proxy_set_header Host $host;
proxy_set_header X-Real_IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;进入:
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host; https://stackoverflow.com/questions/23602151
复制相似问题