所需场景简化如下:访问80,转发到81,在81端口这里如何能获取到真实的客户端IP?
官方说是通过realip模块就可以,但是我设置了,在81这里的$remote_addr仍然是本机地址127.0.0.1;
我用官方的nginx和openresty都试过,无法直接通过remote_addr获取。
配置部分如下:
server {
listen 80;
server_name localhost;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:81/;
}
}
server {
listen 81;
server_name localhost;
location / {
set_real_ip_from 127.0.0.1;
real_ip_header X-Forwarded-For;
real_ip_recursive on;
return 200 $remote_addr;
}
}