0

在 Kubernetes 中使用 Kong 入口控制器 (v2.1)。在数字海洋中运行。

问题是 HTTPS 请求的 X-FORWARDED-FOR 标头中缺少客户端 IP,但在 HTTP 请求中存在。我还需要能够看到 HTTPS 请求上的 IP。

在 HTTP 请求的 X-FORWARDED-FOR 标头中收到的值为“<the-client-ip>, <the-k8s-node-ip>”。然而,在 HTTPS 请求的情况下,该值为“<the-k8s-node-ip>”。客户端 IP 丢失。

Kong使用帮助安装。配置中最相关的部分是:

proxy:
  enabled: true
  http:
    enabled: true
  annotations:
    service.beta.kubernetes.io/do-loadbalancer-protocol: "http"
    service.beta.kubernetes.io/do-loadbalancer-algorithm: "round_robin"
    service.beta.kubernetes.io/do-loadbalancer-tls-ports: "443"
    service.beta.kubernetes.io/do-loadbalancer-tls-passthrough: "true"
4

1 回答 1

1

问题在于 SLL Passthrough。使用此配置时无法修改标头。您应该使用 SSL 终止,除非您有一些特定的合规性要求。

查看文档了解更多信息: https ://www.digitalocean.com/docs/networking/load-balancers/how-to/ssl-passthrough/

于 2020-10-08T08:24:26.717 回答