nginx - 如何在 Kubernetes Nginx Ingress Controller 中将 Nginx IP 附加到 X-Forwarded-For
问题描述
我想知道“如何将 Nginx IP 附加到 X-Forwarded-For”</p>
我在 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;
解决方案
您的配置片段没有加倍,实际上发生的事情是proxy_set_header X-Forwarded-For $remote_addr;
在您在集群中部署 NGINX 控制器时已经默认设置。
为了禁用此默认设置,您需要使用自定义模板。
通过这样做,您可以免费使用 nginx.conf,proxy_set_header X-Forwarded-For $remote_addr;
因此您可以使用您描述的注释根据需要进行设置。
推荐阅读
- common-lisp - 在 sbcl 类型声明中使用异或
- php - whatsapp/chat-api v3.2.0.1 需要 ext-mcrypt * -> 您的系统中缺少请求的 PHP 扩展 mcrypt
- batch-file - Windows 10 中 for for 循环的奇怪行为
- google-cloud-dataflow - 如何在 Cloud Dataflow 中验证基于服务帐户的身份验证
- typescript - 基于参数的firestore查询中的条件where子句
- javascript - 如何修复循环以检查复选框是否被选中,如果是,则将值附加到字符串?
- sql - 如何创建滚动总计字段?
- python - Matplotlib 对数刻度显示为整数解决方法不适用于指定的刻度
- c++ - 为什么我的数据不适合 CUDA 纹理对象?
- matlab - 在以原点为中心的凸包内画一个圆