保留原始请求者 IPa 地址
Preserve original requester IPa address
在 Kubernetes 上使用入口控制器时如何保留原始客户端 IP?
我没有在文档中看到任何解决方案。
来自doc
默认情况下,NGINX 使用 header X-Forwarded-For
的内容作为真实来源来获取有关客户端 IP 地址的信息。如果我们使用可信外部负载均衡器的 IP/network 地址的正确信息配置设置 proxy-real-ip-cidr,这在 L7 中没有问题。
如果 AWS 中的入口控制器是 运行,我们需要使用 VPC IPv4 CIDR。
另一种选择是使用use-proxy-protocol: "true"
启用代理协议。
在此模式下,NGINX 不使用 header 的内容来获取连接的源 IP 地址。
如果您使用 L4 代理将流量转发到 NGINX pods 并在那里终止 HTTP/HTTPS,您将丢失远程端点的 IP 地址。为防止这种情况,您可以使用代理协议转发流量,这将在转发实际 TCP 连接本身之前发送连接详细信息。
除其他外,AWS 和 HAProxy 中的 ELB 支持代理协议。
在 Kubernetes 上使用入口控制器时如何保留原始客户端 IP?
我没有在文档中看到任何解决方案。
来自doc
默认情况下,NGINX 使用 header X-Forwarded-For
的内容作为真实来源来获取有关客户端 IP 地址的信息。如果我们使用可信外部负载均衡器的 IP/network 地址的正确信息配置设置 proxy-real-ip-cidr,这在 L7 中没有问题。
如果 AWS 中的入口控制器是 运行,我们需要使用 VPC IPv4 CIDR。
另一种选择是使用use-proxy-protocol: "true"
启用代理协议。
在此模式下,NGINX 不使用 header 的内容来获取连接的源 IP 地址。
如果您使用 L4 代理将流量转发到 NGINX pods 并在那里终止 HTTP/HTTPS,您将丢失远程端点的 IP 地址。为防止这种情况,您可以使用代理协议转发流量,这将在转发实际 TCP 连接本身之前发送连接详细信息。
除其他外,AWS 和 HAProxy 中的 ELB 支持代理协议。