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

标签