在k8s环境中,一般前端代理都使用Ingress进行代理,开发调用传参的时候会遇到头部名称带下划线的需求,这种前端调用带下划线会被Ingress丢弃掉,这个问题估计很多人都遇到过。在Ingress官方文档中默认Enables underscores in header names. default: is disabled
是为false的
如果我们需要Ingress支持前端传参带下划线的需求,需要在Ingress的configmap种开启并配置enable-underscores-in-headers
参数
修改Ingress configmap
kind: ConfigMap
apiVersion: v1
metadata:
name: abcdocker-nginx
namespace: ingress
annotations:
control-plane.alpha.kubernetes.io/leader: >-
{"holderIdentity":"abcdocker-nginx-85679f444d-dqxh6","leaseDurationSeconds":30,"acquireTime":"2023-01-31T09:37:23Z","renewTime":"2023-06-07T03:00:17Z","leaderTransitions":24}
data:
enable-underscores-in-headers: 'true' #此处添加
#请不要直接复制,根据自己需求添加data标签复制
如果是nginx 出现想支持下划线的header请求,需要在http标签下添加underscores_in_headers on;