Nginx反向代理设置proxy_set_header自定义header请求头参数无效。【原文:开发者导航】
报错代码:
String staffId = request.getHeader(“staffId”);
String sn = request.getHeader(“sn”);
String site_id = request.getHeader(“site_id”);
String photo_type = request.getHeader(“photo_type”);
问题描述:
项目使用Nginx作为web容器,前两个参数staffId和sn使用request.getHeader()方法可以正常获取到值,后面两个参数site_id和photo_type使用request.getHeader()方法获取值始终为null。
问题分析:
Nginx对自定义的header name做了限制,默认设置underscores_in_headers参数值为off,即如果header name中包含下划线,则忽略掉,部署后就获取不到值。
解决办法:
1、在header里不要用“_”下划线,可以使用Java定义变量的方式(驼峰命名法)命名或者用其他的符号(比如“-”减号)代替。
2、将上面提到的配置项的值改为on。在Nginx的配置文件nginx.conf中配置http的部分添加下面的代码:
underscores_in_headers on;(默认值是off)
© 版权声明
文章版权归作者所有,未经允许请勿转载。
相关文章
暂无评论...