我有两层应用程序结构(Nginx(代理)+ nodejs(app)。当天我需要在我的应用程序(nodejs)中获取我的客户端IP(谁访问我的网站)。现在我的客户端IP,它& #39;登录我的Nginx日志文件(通过启用以下conf
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
现在我在我的应用服务器中获取Nginx服务器IP,但我不想获取我的Nginx服务器IP,而不是我需要在我的应用中获取原始客户端IP
这是应用程序代码,我们用它来获取客户端IP 应用服务器。
request.headers['x-forwarded-for'] || request.info.remoteAddress
其中; Nodejs--> Happijs框架
答案 0 :(得分:1)
您应该使用以下代码:
var ip = req.headers['x-forwarded-for'] || req.connection.remoteAddress;
如果您使用的是Hapi框架,那么您应该使用以下代码:
var ip = request.headers['x-forwarded-for'] || request.info.remoteAddress;
答案 1 :(得分:0)
SOLUTION_SOURCE:get ip user with nginx and node,
您可以使用以下设置配置NGINX以传递客户端的IP地址:
location / {
proxy_pass https://fotogena.co:8000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr; # This line.
proxy_connect_timeout 1000;
proxy_send_timeout 1500;
proxy_read_timeout 2000;
}
然后,您可以使用req.headers [“X-Real-IP”]中的HTTP标头X-Real-IP。