nginx-ingress 丢失 header 问题-NGINX反向代理,header丢失的问题

申请的申请头参数有下划线,而Nginx代理默认会把header中参数有“_”下划线的参数去掉;解决这个问题只须要在Nginx的配置文件中增加:underscores_in_headers on;重启Nginx即可。在下面的这个问题中,就是因为Cookies的参数里有两个参数是带有下划线的,因而每次申请Nginx都会把这两个参数当作有效参数去掉,导致每次申请都须要认证,因而就会报下面的谬误第一条。

默认情况下,并不是所有headers的fields它都会转发,fields里带有下划线(_)的,Nginx视为不合法,自动抛弃不发了。例如:AUTHORIZATION_TOKEN

1.解决方法:
想要支持下划线(_)的headers fields,就需要将underscores_in_headers设置为on;默认是off

NGINX配置添加全局部分,并重启:

http {
    
    
    include       mime.types;
    default_type  application/octet-stream;
    #access_log  logs/access.log  main;
    sendfile        on;
    #tcp_nopush     on;
    underscores_in_headers on;
    #keepalive_timeout  0;
    keepalive_timeout  65;

ingress 配置

nameOverride: gaea-flow-internal-test.gemdaletech.com-ingress

annotations:
  nginx.ingress.kubernetes.io/whitelist-source-range: 10.0.0.0/8,127.0.0.0/8,172.16.0.0/12,192.168.0.0/16
  nginx.ingress.kubernetes.io/server-snippet: |
    underscores_in_headers on;
hosts:
  - url: gaea-flow-internal-test.gemdaletech.com
    protocol: http
    paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: gaea-flow
            port:
              number: 80

猜你喜欢

转载自blog.csdn.net/jialiu111111/article/details/131664983