如何从数字海洋负载均衡器 -> Nginx -> 节点脚本获取真实IP地址?

Sti*_*fán 2 nginx node.js digital-ocean

以前,当我仅使用 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;
   }
Run Code Online (Sandbox Code Playgroud)

但现在,一切都在数字海洋负载均衡器的背后。因此,节点脚本接收数字海洋负载均衡器的 IP 地址。

你们中有人以前经历过这种情况吗?你们是如何解决的?

干杯。

Sti*_*fán 5

我解决了这个问题。

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

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

因此,DO 负载均衡器设置将为 HTTPS/443 -> 新证书 -> HTTPS/443。

我相信这称为终止负载均衡器上的 SSL 连接。