nginx-ingress后端服务header丢失
如果请求的请求头参数有下划线,而Nginx代理默认会把header中参数有“_”下划线的参数去掉;解决这个问题只需要在Nginx的配置文件中添加:underscores_in_headers on; 默认为 off
k8s部署的 ingress-nginx 只需要在ingress-nginx-controller Configmap中添加 enable-underscores-in-headers: "true"
apiVersion: v1
data:
allow-snippet-annotations: "true"
enable-underscores-in-headers: "true"
kind: ConfigMap
...
另外一种方法是在 服务添加ingress配置时添加以下注解 :
注意: 该方法在某些情况下可能有些请求不生效。最好是使用configmap进行全局配置。
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
annotations:
nginx.ingress.kubernetes.io/server-snippet: |
underscores_in_headers on;
...
评论区