scgi_pass_header

`scgi_pass_header` 指令允许您指定应当在响应中从 SCGI 服务器传递给客户端的头部。 — NGINX HTTP Core

scgi_pass_header
httpserverlocation
语法scgi_pass_header header_name;
默认值none
上下文http, server, location
模块NGINX HTTP Core
参数1

说明

`scgi_pass_header` 指令在 NGINX 配置中用于控制将特定头部从 SCGI 服务器转发到客户端。配置后,NGINX 会确保包含在 SCGI 响应中的指定头部随同 HTTP 响应一并发送。这对于保留由 SCGI 应用提供的重要元数据尤其有用,例如内容类型或客户端可能需要的任何自定义应用头部。 该指令设计为接受单个参数,该参数表示要传递的头部名称。该指令可用于 `http`、`server` 或 `location` 上下文,根据配置范围灵活应用。如果需要多个头部,可以重复指定该指令,每个头部各用一次。此外,必须确保所指定的头部确实存在于 SCGI 响应中;否则它们不会被发送到客户端,从而导致提供的数据不完整。 在实际使用中,该指令通过拦截来自 SCGI 服务器响应中的头部来工作。通过指定要传递的头部,管理员可以精细控制客户端行为和数据管理,确保客户端获取所有必要信息,同时根据被服务的应用的具体需求进行调整。

配置示例

server {
    listen 80;

    location /myapp {
        scgi_pass 127.0.0.1:9000;
        scgi_pass_header X-My-Custom-Header;
        scgi_pass_header Content-Type;
    }
}

请记住使用头部名称的精确大小写,因为在某些情况下 HTTP 头可能区分大小写。

如果该头部在 SCGI 响应中不存在,它将不会出现在客户端响应中,这可能导致混淆。

不必要地使用太多`scgi_pass_header`指令会导致性能开销,因为头部会被逐一处理并转发。