Nginx常用参数
1、underscores_in_headers
underscores_in_headers 是 Nginx 的核心配置参数,用于控制是否允许 HTTP 请求头名称中包含下划线(_)
核心参数信息
- 语法:
underscores_in_headers on | off; - 默认值:
off(默认不允许) - 配置上下文:
http,server(不能在location中配置)
默认行为(off)
- 效果:Nginx 会将名称含下划线(如
user_id,auth_token)的请求头标记为无效 - 处理方式:受
ignore_invalid_headers指令(默认on)控制,直接丢弃这些无效头,不转发给后端服务 - 常见问题:导致后端接收不到自定义头、认证失败、会话丢失等
启用配置(on)
- 效果:允许带下划线的头,Nginx 会正常解析并转发给后端
#全局配置
http {
underscores_in_headers on; # 所有server生效
server {
listen 80;
server_name example.com;
...
}
}
#单个站点配置
server {
listen 80;
server_name api.example.com;
underscores_in_headers on; # 仅当前server生效
...
}
总结:如果不开启,有些带下划线的请求头传递不过去,比如session_token,那么后端就会报错获取不到token


