$proxy_protocol_server_port
变量 $proxy_protocol_server_port 返回由 PROXY protocol 指定的服务器端口号。 — NGINX Core (HTTP)
$proxy_protocol_server_port
NGINX Core (HTTP)
说明
在 NGINX 配置中,变量 $proxy_protocol_server_port 用于检索服务器从 PROXY protocol 头部接收到的端口号。该变量在启用 PROXY protocol 时尤其重要,允许 NGINX 在位于转发客户端连接信息的代理之后时识别原始端口。处理请求时,如果在 server 块中通过 'proxy_protocol on' 指令启用了 PROXY protocol,服务器端口号将根据代理传递的传入连接信息动态设置。例如,如果请求通过端口 80 到达,那么引用 $proxy_protocol_server_port 将得到该值。该变量对于配置 SSL 终止或根据连接最初使用的端口在任何转换之前正确重定向流量非常有用。根据配置和代理服务器的转发行为,它的典型值可能为 '80'(HTTP)或 '443'(HTTPS)。
配置示例
server {
listen 80 proxy_protocol;
location / {
return 200 "Server port: $proxy_protocol_server_port";
}
}子系统
http可缓存
是上下文
http, server, location⚠
确保上游服务器已实际启用 PROXY protocol;否则,此变量将保持为空。
⚠
请注意,在未配置必要代理设置的情况下使用此变量会导致意外行为,因为它依赖于 PROXY protocol header 的存在。
⚠
如果使用 SSL,请确保上游服务器同时正确传输 PROXY protocol 和 SSL 设置。