在nodejs app中了解我的客户端IP

时间:2017-03-21 09:22:59

标签: node.js hapijs

我有两层应用程序结构(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框架

2 个答案:

答案 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。