如何在Kubernetes Nginx入口控制器中将Nginx IP附加到X-Forwarded-For
我想知道“如何将Nginx IP附加到X-Forwarded-For” 我在Ingress注释中添加了代码段如何在Kubernetes Nginx入口控制器中将Nginx IP附加到X-Forwarded-For,nginx,kubernetes,kubernetes-ingress,nginx-ingress,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_a
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入口控制器生成的代理集头部分”
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;
您的配置代码段没有翻倍,实际上发生的是,
proxy\u set\u头X-Forwarded-For$remote\u addr在集群中部署NGINX控制器时,默认情况下已经设置了code>
要禁用此默认设置,您需要使用
通过这样做,您可以拥有一个nginx.conf,其中没有proxy\u set\u头X-Forwarded-For$remote\u addr代码>以便您可以根据需要使用所描述的注释进行设置 被接受的答案对我来说不起作用。只需将下面的注释添加到入口对象
nginx.ingress.kubernetes.io/configuration-snippet: |
more_set_headers "X-Forwarded-For $http_x_forwarded_for";
用于测试强>
❯ curl -I https://example.com/path/here
HTTP/1.1 200 OK
cache-control: no-cache, no-store, max-age=0, must-revalidate
Date: Sat, 13 Mar 2021 08:52:02 GMT
expires: 0
pragma: no-cache
vary: Origin,Access-Control-Request-Method,Access-Control-Request-Headers
X-Forwarded-For: 88.888.8.8
Connection: keep-alive
您想要一个或同时关闭两个?我想要一个,并在入口注释中设置尝试将“使用转发头”设置为false其他选项尝试隐藏头使用转发头
默认值:false