问题

今天测试同事在测试接口时遇到了测试环境无法获取到header中参数的问题,但是本地可以。

分析

经过反复查看配置,发现是Nginx引起的。 Nginx做反向代理时默认request的header的那么中包含 _ 时,会自动忽略掉。而接口的header刚好包含_。

解决方案

修改Nginx配置文件 nginx.conf

在http部分中添加如下配置:

underscores_in_headers on; (默认 underscores_in_headers 为off)

即可解决header参数丢失问题。