申请的申请头参数有下划线,而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