proxy_set_header

指令 `proxy_set_header` 允许您修改发送到被代理服务器的请求头。 — NGINX HTTP Core

proxy_set_header
httpserverlocation
语法proxy_set_header name value;
默认值none
上下文http, server, location
模块NGINX HTTP Core
参数2

说明

`proxy_set_header` 指令在 NGINX 中用于在代理上下文中更改或定义从 NGINX 服务器发送到上游服务器的头部。这对于传递额外信息(例如原始客户端信息)或在将请求转发到被代理的后端之前修改已有头部尤其有用。 该指令接受两个参数:要设置或修改的头部名称和要赋予该头部的值。您可以使用 NGINX 提供的变量,从而允许根据请求上下文生成动态的头部值。例如,您可能希望将 `X-Real-IP` 头设置为客户端的 IP 地址。您也可以根据需要覆盖现有头部的值。需要注意的是,如果同一个头名被设置多次,则以最后一次设置的值为准。 该指令可在多种上下文中使用,包括 `http`、`server` 和 `location` 块,为在服务器配置的不同部分如何处理头部提供灵活性。正确配置头部对于后端应用的正常运行至关重要,因为它们通常依赖 HTTP 头来进行路由、认证以及其他请求管理任务。

配置示例

location /api {
    proxy_pass http://backend;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
}

使用 `proxy_set_header` 设置的头是累积的;如果一个头被定义多次,将使用最后定义的值。

确保在正确的上下文中(http、server 或 location)定义该指令,以避免配置错误。

在可能的动态场景中,使用简单值而非变量(例如固定字符串)可能不会得到预期结果。