$request_port

$request_port 变量包含客户端用于向服务器发送请求的端口号。 — NGINX Core (HTTP)

$request_port NGINX Core (HTTP)

说明

在 NGINX 中,$request_port 变量表示接收自客户端的请求所使用的端口。该变量在处理请求时被设置,其值来源于请求头中指定的客户端连接信息。当客户端发出 HTTP 或 HTTPS 请求时,请求会根据匹配条件被路由到指定的 server block,其中匹配条件包括端口号。对于标准的 HTTP 请求,通常为端口 80;对于 HTTPS 请求,通常为端口 443。 如果请求使用了非标准端口,$request_port 将反映该具体端口号。例如,如果客户端连接到端口 8080,则 $request_port 的值将是 "8080"。需要注意的是,在使用像 HTTP/2 这样的协议时,端口可能会被动态协商,但 NGINX 仍会在 $request_port 变量中捕获并反映用于该连接的端口号。了解该值有助于日志记录、条件配置,或在基于接收端口重写 URL 时使用。

配置示例

server {
    listen 80;
    location / {
        return 200 "Request received on port: $request_port";
    }
}

子系统

http

可缓存

上下文

http, server, location, if

如果服务器位于不转发原始客户端端口的代理后面,该变量将为空。

如果请求被上游服务器转发或修改,在某些上下文中使用该变量可能会导致意外结果。