保留原始请求者IPa地址



在Kubernetes上使用ingress控制器时,如何保留原始客户端IP?

我在文档中没有看到任何解决方案。

此链接已断开:http://ingress.kubernetes.io/preserve-host

从文档

默认情况下,NGINX使用报头X-Forwarded-For的内容作为真相的来源来获得关于客户端IP地址的信息。如果我们使用可信外部负载均衡器的ip/网络地址的正确信息配置设置代理真实ip cidr,这在L7中不会出现问题。

如果入口控制器在AWS中运行,我们需要使用VPC IPv4 CIDR。

另一个选项是使用use-proxy-protocol: "true"启用代理协议。

在这种模式下,NGINX不使用标头的内容来获取连接的源IP地址。

如果您使用L4代理将流量转发到NGINX pod并在那里终止HTTP/HTTPS,您将丢失远程端点的IP地址。为了防止这种情况,您可以使用代理协议来转发流量,这将在转发实际TCP连接之前发送连接详细信息。

AWS和HAProxy中的ELB支持代理协议。

最新更新