Nginx代理导致请求头中header带下划线_的属性丢失
2023-11-03 16:47:15
294次阅读
0个评论

因为项目需求,做系统之间的单点登录功能。


请求时往请求头header中放入了Auth_token信息,在接收请求时再从header中拿出,在本地调试时是可以的,但通过NGINX代理之后发现拿不到,接口也提示没有获取到Auth_token信息,意识到可能是Auth_token没有带过去



最后发现是请求的请求头参数有下划线,而Nginx代理默认会把header中参数有“_”下划线的参数去掉。


方法一:不用下划线,从设计之初,就不用带下划线的属性ke'y

把下划线_改成其他的,如sign_val改成sign-val


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

underscores_in_headers on
; (默认 underscores_in_headers 为off
)

两种代码均可行。


收藏 0 0

登录 后评论。没有帐号? 注册 一个。

管理员

高级会员
  • 0 回答
  • 0 粉丝
  • 0 关注