如何自定义k8s-nginx入口HTTP头错误



在我们的集群中,有一个自定义的错误页面后端和一个身份验证服务

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
nginx.ingress.kubernetes.io/use-regex: 'true'
nginx.ingress.kubernetes.io/auth-url: 'http:/***/auth'

https://kubernetes.github.io/ingress-nginx/user-guide/custom-errors/https://github.com/kubernetes/ingress-nginx/tree/master/images/custom-error-pages

从上面的链接和来自身份验证服务401的错误页面后端的日志显示来看,它只有8个硬编码头,如下所示。

2020/04/14 03:24:35请求信息&{GET/?access_token=pk1.eyJ1Ijoid2ViZXJ0YW8ILCJIjoiY2pibTdmaWc2MTZqaDJybzFzcm93bGE2eiJ9.cwSE9DYCYP0dIeY4Hp6Kg HTTP/1.0 1 0 map[接受:[/]接受编码:[gzip,deflate,br]缓存控制:[无缓存]连接:[关闭]邮差令牌:[c7d07b51-5e3d-469d-9ec4-73be2cf5cd26]用户代理:[PostmanRuntime/7.24.0]X代码:[401]X格式:[/]X-Ingress-Name:[static-api入口]X-Namespace:[默认]X-Original-Uri:[/xxxx/-76.9,38.9,15/1000x1000@1x?access_token=pk1.eyJ1Ijoid2ViZXJ0YW8ILCjIjoiY2pibTdmaWc2MTZqaDJybzFzcm93bGE2eiJ9.cwSE9DYCYP0dIeY4Hp6Kg]X服务名称:[静态api svc]X服务端口:[80]{}0[]true api.staging.versalinks.net map[]map[]map[]172.20.0.70:1440/?access_token=pk1.eyJ1Ijoid2ViZXJ0YW8iLCJhIjoiY2pibTdmaWc2MTZqaDJybzFzcm93bGE2eiJ9.cwSE9DYCYP0dIeY4Hp6Kg 0xc00009e0c0}

我们是否可以从身份验证服务添加一些自定义的标头X-AUTH-INFO?

您可以通过ConfigMap为nginx ingress控制器使用自定义标头,将自定义标头列表传递给上游服务器。

您应该使用自定义标头定义ConfigMap:

apiVersion: v1
data:
X-Different-Name: "true"
X-Request-Start: t=${msec}
X-Using-Nginx-Controller: "true"
kind: ConfigMap
metadata:
name: custom-headers
namespace: ingress-nginx

这在名为custom-headersingress-nginx命名空间中定义了一个ConfigMap,其中包含几个自定义的X前缀HTTP标头。

apiVersion: v1
data:
proxy-set-headers: "ingress-nginx/custom-headers"
kind: ConfigMap
metadata:
name: nginx-configuration
namespace: ingress-nginx
labels:
app.kubernetes.io/name: ingress-nginx
app.kubernetes.io/part-of: ingress-nginx

这在名为nginx-configurationingress-nginx命名空间中定义了一个ConfigMap。这控制入口控制器的全局配置,并且已经存在于标准安装中。密钥proxy-set-headers被设置为引用先前创建的ingress-nginx/custom-headersConfigMap。

nginx入口控制器将读取ingress-nginx/nginx-configurationConfigMap,找到proxy-set-headers密钥,从ingress-nginx/custom-headersConfigMap中读取HTTP头,并将这些HTTP头包括在从nginx流到后端的所有请求中。

相关内容

  • 没有找到相关文章

最新更新