$proxy_protocol_port

当使用 PROXY protocol 时,$proxy_protocol_port 变量返回接收被代理请求的端口号。 — NGINX Core (HTTP)

$proxy_protocol_port NGINX Core (HTTP)

说明

$proxy_protocol_port 变量在 NGINX 中用于检索 PROXY protocol 报头中指定的端口号,该端口号对应已被代理的连接。它主要在 NGINX 作为反向代理或 负载均衡器 的配置中相关,允许服务器准确识别客户端连接的原始端口。此信息对于日志记录、安全措施或后端服务器的决策可能至关重要。 该变量仅在 upstream server block 中启用 PROXY protocol 时被设置。如果未使用 PROXY protocol,则该变量不会包含有效值,实际解析为 0。该变量的典型值为原始端口号,例如用于 HTTP 和 HTTPS 流量的 80 或 443。使用 $proxy_protocol_port 可以提供关于传入请求的更多上下文,这在多层架构中尤为有价值,因为后端处理可能依赖于原始客户端端口。

配置示例

server {
    listen 80 proxy_protocol;
    location / {
        add_header X-Proxy-Port $proxy_protocol_port;
    }
}

子系统

http

可缓存

上下文

http, server, location

确保在 listen 指令上启用 PROXY protocol,否则该变量不会被设置并会返回 0。

要使该变量提供有意义的数据,必须在支持并正确配置 PROXY protocol 的上下文中使用它。