本地测试项目获取客户端IP,都是正常的,部署到服务器后发现获取到的ip都是127.0.0.1,初步确定问题出在nginx代理上,查阅资料后。
nginx反向代理配置时,添加下面的配置:
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;
加入后:
server {
listen 18082;
server_name _2;
root /home/apps/4a-front/nginx14/html;location ^~ /api/ {
proxy_pass http://192.168.100.142:18084/;
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;
}location / {
root html/4a-front-tx;
index /index.html;
try_files $uri $uri/ /index.html;
}location /static/{
root html/4a-front-tx;
index /4a-front/index.html;
try_files $uri $uri/ /4a-front-tx/index.html;
}
error_page 404 /404.html;
location = /40x.html {
}error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}