解决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直接舍弃了带下划线的参数。