发布于 3年前

解决Nginx自动忽略header包含下划线参数方法

最近更换了站点的服务器,web服务环境使用了LNMP(之前使用的是LAMP),在部署项目时发现后端无法获取http请求头中的自定义参数。

原因:

nginx对http请求header name的字符做了限制,默认 underscores_in_headers 为off表示如果header name中包含下划线,则忽略掉,部署后就获取不到。

解决方法:

1.在自定义的header信息里不要用下划线,可以用驼峰命名或者其他的符号(如减号-)代替.

2.在nginx里的 nginx.conf文件中配置http的部分添加 : underscores_in_headers on;(默认值是off)

建议使用第一种方法,nginx有这种限制肯定有原因的。

是因为nginx是严格按照http 的标准,头部是不允许出现下划线,所以nginx直接舍弃了带下划线的参数。

©2020 edoou.com   京ICP备16001874号-3