当客户使用我们的服务时,网络首先通过我们云提供商的 L4 负载均衡器(除了客户支持之外,我对此没有太多的控制权)。
在我们的服务器中,流量首先到达 NGINX 层(dockerized),然后传递到后端服务。
Nginx 正在接收负载均衡器的 IP。请求中的“X-Forwarded-For”也为空。
如何从Nginx端获取真实客户端IP?
答案1
由于存在 L4 负载均衡器,这意味着负载均衡器会创建到您的 nginx 的 TCP 连接。
TCP 连接唯一可用的信息是另一端的 IP 地址,在您的情况下是负载平衡器。
如果您想要接收实际的客户端 IP 地址,则需要使用反向代理,它会将原始客户端 IP 地址作为标头添加到对原始服务器的请求中。