Nginx中Head参数踩坑

背景

今天在调试接口的发现,直接访问spring gateway时,所有请求头参数可以成功读取到,但是发布到测试环境,用了nginx转发,请求头中key为 app_user_id的参数就是获取不到。

解决

同事搜索【nginx请求头丢失】后,发现nginx对下划线的头信息做了限制。

解决方法1:既然nginx对下划线不支持,那没关系,不用下划线就是了。比如原来old_token改成old-token就可以了。(一般header的name都是-来拼接的,比如User-Agent);

解决方法2:

在nginx里的nginx.conf配置文件中的http部分中添加underscores_in_headers on;如下配置:

http {

include mime.types;

default_type application/octet-stream;

sendfile on;

underscores_in_headers on;

keepalive_timeout 65;

}

你可能感兴趣的:(nginx,服务器,运维)