在Azure ingress的标头中启用下划线

时间:2017-10-29 21:03:33

标签: 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

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

underscores_in_headers on;

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

感谢。

3 个答案:

答案 0 :(得分:2)

根据ingress configmap spec,您可以直接在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

还有example of setting custom headers 你试过吗?

答案 1 :(得分:1)

对于nginx入口控制器,我刚刚将“ true”而不是“ on”更改为我。 如此处所述:https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/configmap/

apiVersion:v1

数据:   启用标题下划线:“ true”

种类:ConfigMap

元数据:

名称:nginx配置

命名空间:ingress-nginx

标签:

app: ingress-nginx

kubectl apply -f configmap.yml

enter image description here

答案 2 :(得分:0)

每当您从Helm或手动在Kubernetes天气中安装Nginx Ingress时,它总是使用它创建控制器。控制器是处理所有路由的主要容器。 这些控制器Pod在Kube-System命名空间中的部署中定义。 此部署附带一个ConfigMap,该ConfigMap也位于Kube-System中。 Deployment that have Nginx Ingress Controllers definition.

Default Config Map that is Connected to Ingress Deployment.

现在您要做的就是将配置添加到此Config Map文件中。 Altered/Edited Config Map.