nginx - 如何在Kubernetes Nginx Ingress Controller中将Nginx IP附加到X-Forwarded-For

标签 nginx kubernetes kubernetes-ingress nginx-ingress

我想知道“如何将Nginx IP附加到X-Forwarded-For”

我在Ingress注释中添加了代码段。

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: ing
  annotations:
    nginx.ingress.kubernetes.io/configuration-snippet: |
      proxy_set_header X-Forwarded-For "$remote_addr, $server_addr";

但似乎在nginx.conf中设置了两倍。
    proxy_set_header X-Forwarded-For        $remote_addr;
...
    proxy_set_header X-Forwarded-For "$remote_addr, $server_addr";

所以我的后端服务器将获得两个X-Forwarded-For
谁知道“如何禁用Nginx Ingress Controller生成的proxy_set_header部分”?
        proxy_set_header X-Request-ID           $req_id;
        proxy_set_header X-Real-IP              $remote_addr;

        proxy_set_header X-Forwarded-For        $remote_addr;

        proxy_set_header X-Forwarded-Host       $best_http_host;
        proxy_set_header X-Forwarded-Port       $pass_port;
        proxy_set_header X-Forwarded-Proto      $pass_access_scheme;

        proxy_set_header X-Scheme               $pass_access_scheme;

最佳答案

您的配置片段没有被加倍,实际上发生的是,当您在集群中部署NGINX Controller时,默认情况下已经设置了proxy_set_header X-Forwarded-For $remote_addr;

为了禁用此默认设置,您需要使用custom template

这样,您可以拥有一个不含proxy_set_header X-Forwarded-For $remote_addr;的nginx.conf文件,以便您可以根据需要使用所描述的注释进行设置。

关于nginx - 如何在Kubernetes Nginx Ingress Controller中将Nginx IP附加到X-Forwarded-For,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62337379/

相关文章:

Nginx——错误 400 : Origin is not allowed to make this request

java - Spring Cloud Kubernetes 重新加载时序问题

kubernetes - 无法在gcp入口中打开swagger文档

ssl - Kubernetes Haproxy Ingress + Nginx 作为后端 Https

nginx - 配置路径字段后,Kubernetes nginx入口显示 “403”

ubuntu - nginx 将非 www 重定向到 www 和 https

nginx - Nginx conf模板无法与Dokku一起使用

docker - Google Cloud Kubernetes 访问私有(private) Docker Hub 托管镜像

nginx - 如何在Kubernetes中配置Ingress-nginx?

nginx - 从 WAN 访问路由器上的 NGINX