Nginx代理导致请求头某些内容丢失

nginx代理导致请求头header中的信息丢失
问题描述:在请求时往请求头header中放入了token-api信息,在接收请求时再从header中拿出,在本地调试时是可以的,但通过NGINX代理之后发现拿不到,重新尝试放入.前端部署nginx后调用接口报401。接口也提示没有获取到token信息,意识到可能是token没有带过去。报错如下:

Nginx代理导致请求头某些内容丢失_第1张图片

最后发现是NGINX对header有所限制,下划线(_)不支持。
方法一:不用下划线
把下划线_改成其他的,如sign_val改成sign-val

方法二:从根本解除nginx的限制
nginx默认request的header的那么中包含’_’时,会自动忽略掉。
解决方法是:在nginx里的nginx.conf配置文件中的http部分中添加如下配置:

underscores_in_headers on; (默认 underscores_in_headers 为off)

两种代码均可行。
 

 

你可能感兴趣的:(java,nginx,header,nginx,java,运维)