在 Azure 入口上的标头中启用下划线

use*_*065 6 azure kubernetes

我遇到了标头未转发到我的服务中的问题,我不确定如何添加对 Ingress 的支持,但是我有以下 Ingress 服务:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: my-ingress
  annotations:
    ingress.kubernetes.io/rewrite-target: /
    "nginx.org/proxy-pass-headers": "custom_header"
spec:
  rules:
  - host: myingress.westus.cloudapp.azure.com
    http:
      paths:
      - path: /service1
        backend:
          serviceName: service1
          servicePort: 8080
Run Code Online (Sandbox Code Playgroud)

但是,我的custom_header不会被转发。在 nginx 中我设置了 underscores_in_headers:

underscores_in_headers on;
Run Code Online (Sandbox Code Playgroud)

如何将此配置添加到我的 ingress nginx 服务中?

谢谢。

小智 5

我刚刚为 nginx 入口控制器更改了“true”而不是“on”,并为我工作。正如这里提到的: https: //kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/configmap/

apiVersion: v1
kind: ConfigMap
metadata:
  name: nginx-configuration
  namespace: ingress-nginx
  labels:
    app: ingress-nginx
data:
  enable-underscores-in-headers: "true"
Run Code Online (Sandbox Code Playgroud)

kubectl apply -f configmap.yml

在此输入图像描述


vit*_*ore 3

根据 ingress configmap 规范,您可以直接在 configspec 中使用此标头,例如:

apiVersion: v1
data:
  enable-underscores-in-headers: "on"
kind: ConfigMap
metadata:
  name: nginx-configuration
  namespace: ingress-nginx
  labels:
    app: ingress-nginx

kubectl apply -f configmap.yml
Run Code Online (Sandbox Code Playgroud)

还有一个设置自定义标题的示例 您尝试过吗?

  • 这个答案对我有用,并进行了我需要使用的修改:enable-underscores-in-headers: "true" 。我正在使用容器映像 quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.19.0。 (3认同)