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