从 Google 网络负载平衡获取客户端 IP

从 Google 网络负载平衡获取客户端 IP

我无法使用 Google 的 HTTP 负载平衡,因为它不支持 Web 套接字。

因此我的 NGINX 在 Google Container Engine 中运行,位于 Google Network Load Balance 后面。

当请求到达docker容器中的NGINX时,它会获取NODE的IP而不是客户端ip。

2016/04/07 10:53:47 [错误] 94#0:*73 规则禁止访问,客户端:10.132.0.9

如何解决这个问题呢?

答案1

在将网络负载均衡器与 Kubernetes 结合使用时获取客户端 IP 是一个已知限制。您可以参考此问题 bug以获取更新和解决方法。

答案2

您在 nginx 日志中获取了“gce 网络负载均衡器”的 IP 吗?

由于您的问题不是很清楚,我推测您的问题出在 nginx 配置上。 尝试在 nginx.conf 中添加 x-forwarded-for 选项 更清楚:real_ip_header X-Forwarded-For;

查看谷歌官方帖子 https://cloud.google.com/solutions/https-load-balancing-nginx

相关内容