【问题标题】:How to get real IP address from Digital Ocean Load Balancer -> Nginx -> Node script?如何从 Digital Ocean Load Balancer -> Nginx -> Node 脚本获取真实 IP 地址?
【发布时间】:2018-06-23 18:19:27
【问题描述】:

以前当我使用 Nginx -> Node 脚本时,我能够使用这样的 Nginx 配置获取访问者的真实 IP 地址:

   location / {
           proxy_pass http://localhost:8080;
           proxy_http_version 1.1;
           proxy_set_header Upgrade $http_upgrade;
           proxy_set_header Connection 'upgrade';
           proxy_set_header X-Real-IP $remote_addr;
           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
           proxy_set_header Host $host;
           proxy_cache_bypass $http_upgrade;
   }

但现在,一切都在数字海洋负载均衡器的背后。结果,节点脚本接收到 Digital Ocean Load Balancer 的 IP 地址。

你们有没有遇到过这种情况,你们是怎么解决的?

干杯。

【问题讨论】:

    标签: node.js nginx digital-ocean


    【解决方案1】:

    我解决了这个问题。

    使用 Digital Ocean 负载均衡器,如果您对负载均衡器使用“passthrough” -> droplet 设置,它将不会传递客户端 IP。

    您需要(通过 Digital Ocean UI)配置负载均衡器以使用“新证书”(可以是任何证书)。

    所以 DO 负载平衡器设置将是 HTTPS/443 -> 新证书 -> HTTPS/443。

    我相信这被称为在负载均衡器处终止 SSL 连接。

    【讨论】:

      【解决方案2】:

      DigitialOcean 负载均衡器设置 X-Forwarded-For、X-Forwarded-Proto 和 X-Forwarded-Port

      在你的情况下:

             proxy_set_header X-Real-IP $http_x_forwarded_for
      

      【讨论】:

        猜你喜欢
        • 2016-12-05
        • 1970-01-01
        • 1970-01-01
        • 2019-01-30
        • 1970-01-01
        • 2011-09-02
        • 2022-01-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多