我想获取访问我页面的客户端的 IP 地址。我的应用程序在代理后面运行,因此我将此配置设置为我的 nginx 文件:
proxy_set_header X-Forwarded-For $remote_addr;
现在我尝试在 express 中获取这样的 IP 地址
req.ip
req.headers["x-forwarded-for"]
req.ips
req.connection.remoteAdress
似乎没有什么效果。我还将信任代理设置为 true
app.set("trust proxy", true);
但其他配置(例如proxy_set_header Host
或)proxy_set_header Connection "upgrade"
都可以正常工作。我做错了什么?
答案1
将此配置添加到你的 nginx 配置 =>
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
在 express 中你可以用这个获取 ip
let ip = req.headers['x-forwarded-for'] ||
req.connection.remoteAddress ||
req.socket.remoteAddress ||
(req.connection.socket ? req.connection.socket.remoteAddress : null);