本节内容:
在nginx的反向代理中node节点获取真实IP
前端为一个nginx 反向代理,结果:req.ip
始终取到nginx的IP。
为了取得客户端真实IP,需要做2个步骤,如下:
1,设置nginx转发时加上http header
2,在node中取出新加的header
nginx配置
复制代码 代码示例:
location /svc/ {
proxy_pass http://192.168.1.111:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
以上增加了3个http header,其中X-Real-IP代表真实IP。
node节点的代码:
复制代码 代码示例:
var real_ip = req.get("X-Real-IP") || req.get("X-Forwarded-For") || req.ip;