proxy_pass_request_headers
指令 `proxy_pass_request_headers` 控制 NGINX 是否会将代理请求头传递给被代理服务器。 — NGINX HTTP Core
proxy_pass_request_headers
httpserverlocation
语法proxy_pass_request_headers on | off;
默认值on
上下文http, server, location
模块NGINX HTTP Core
参数flag
说明
`proxy_pass_request_headers` 指令用于指定是否应将原始请求的入站头转发到被代理的服务器。此指令可以设置为 `on` 或 `off`。启用时,NGINX 从客户端接收到的所有头都会包含在发送到被代理的 upstream 服务器的请求中。这在需要保留客户端信息(例如认证令牌或 upstream 应用所需的自定义头)以确保其正常运行时尤其有用。 在实际场景中,它确保诸如 `User-Agent`、`Referer` 以及任何自定义头等字段被包含,这对于维持依赖这些值的应用行为可能至关重要。如果设置为 `off`,这些头将不会被传递,这可能导致依赖这些头的应用逻辑出现意外行为。该指令可在多个上下文中应用:http、server 和 location 块,从而根据不同的处理需求或上下文提供配置灵活性。 需要注意的是,尽管该指令允许对请求处理进行细粒度调整,但应小心避免将敏感信息传递给外部服务器,因为在某些配置下这可能会暴露用户数据或危及安全。
配置示例
location /api {
proxy_pass http://backend;
proxy_pass_request_headers off;
}⚠
请确保敏感标头不会无意中发送到被代理的服务器,尤其是在配置为 `on` 时。
⚠
该指令的行为会被在其设置之后显式清除或修改标头的指令所覆盖。