$proxy_port
$proxy_port 变量返回被代理服务器的端口号。 — NGINX Core (HTTP)
$proxy_port
NGINX Core (HTTP)
说明
NGINX 中的 $proxy_port 变量用于指定在 `proxy_pass` 指令中为被代理服务器指定的端口号。该变量在需要根据目标服务器的端口记录日志或有条件地处理请求时特别有用。它会在使用 `proxy_pass` 指令代理请求时被设置。如果在 `proxy_pass` 中给出了主机名,NGINX 会将其解析为地址和端口,而 $proxy_port 变量会检索该端口。通常,该端口在 HTTP 请求中为 80,在 HTTPS 中为 443,但也可能根据您的上游服务器的配置而有所不同。 在请求未被代理,或在 `proxy_pass` 配置中未显式定义端口的情况下,$proxy_port 可能返回空字符串。为有效使用此变量,务必确保您的 `proxy_pass` 配置正确指定了协议和端口。您也可以将其与其他变量(例如 $proxy_host)结合使用,以在配置中创建动态行为。
配置示例
location /example {
proxy_pass http://backend_server:8080;
access_log /var/log/nginx/proxy_access.log "Proxy to port: $proxy_port";
}子系统
http可缓存
否上下文
http, server, location, if⚠
如果未设置代理,或者 proxy_pass url 未指定端口,$proxy_port 可能返回空值。
⚠
如果你打算在 if 语句中使用 $proxy_port,请记得检查条件处理,因为 if 语句可能表现得出乎意料。