【问题标题】:Get to know my client ip in nodejs app在 nodejs 应用程序中了解我的客户端 IP
【发布时间】:2017-05-10 18:16:55
【问题描述】:

我有两层应用程序结构(Nginx(代理)+nodejs(应用程序)。一天结束时,我需要在我的应用程序(nodejs)中获取我的客户端 IP(谁访问了我的站点)。现在我的客户端 IP,它是登录我的 Nginx 日志文件(通过启用以下配置

   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 框架

【问题讨论】:

标签: node.js hapijs


【解决方案1】:

你应该使用下面的代码:

var ip = req.headers['x-forwarded-for'] || req.connection.remoteAddress;

如果您使用的是 Hapi 框架,那么您应该使用以下代码:

var ip = request.headers['x-forwarded-for'] || request.info.remoteAddress;

【讨论】:

    【解决方案2】:

    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。

    【讨论】:

      猜你喜欢
      • 2013-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-30
      • 1970-01-01
      相关资源
      最近更新 更多