$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⚠
如果服务器位于不转发原始客户端端口的代理后面,该变量将为空。
⚠
如果请求被上游服务器转发或修改,在某些上下文中使用该变量可能会导致意外结果。