Nginx默认不支持带下划线的头信息
前言
最近国庆了,由于主要计划被迫放弃,所以只能走点次要计划,就是将个人全栈开发的书签系统移动到其它服务器上,主要还是因为财力问题,无法供给多台服务器,腾讯云也没有什么好活动,全是老用户与狗不得参与系列。
无奈的搬运,其中最简单的是项目打包带走,数据库的还原,站点的配置,其中我就遇到了个贼奇葩的问题,就是我的头信息总是获取不到。
一开始我是以为是我的反代服务的问题,因为是nodejs的后端服务,如果想要通过域名访问api就不得不通过反代的方式来使用。
反代是将a的请求接受后自己再发给真实服务,然后将真实服务的返回再返回给a,其中我们知道一个xhr请求是有很多参数的,其中header头信息也是一种。
如果我们的反代服务没有将header转发给真实服务,比如安全过滤啥的,这就会导致我们真实服务器参数获取失败而报错。
所以我一直在这块找解决方案,找了一堆又一堆啊,都没有用。
最后看到这么一条说明:nginx默认对header中的key不支持下划线;我转念一想,我草,我的key不就是带下划线嘛!
于是乎我在nginx的配置中增加了一个配置,问题就解决了。
解决方法
在nginx中配置一个:
underscores_in_headers on;
问题就解决了。
由于我使用的是宝塔,所以这里说一下具体步骤:
打开宝塔的nginx管理,注意不是单个网站的管理,因为我们需要修改nginx的http模块,然后找到配置修改,在如下位置增加一下:
保存后重载下配置或者重启下nginx即可。
此时问题解决。
版权申明
本文系作者 @木灵鱼儿 原创发布在木灵鱼儿站点。未经许可,禁止转载。
全部评论 1
杰哥
Google Chrome Windows 10