$remote_port

$remote_port 变量在 NGINX 中包含发出请求的客户端的端口号,可用于访问控制和日志记录。 — NGINX Core (HTTP)

$remote_port NGINX Core (HTTP)

说明

$remote_port 变量是一个内置的 NGINX 变量,用于捕获客户端与服务器建立连接时所使用的 TCP 端口号。它主要用于日志记录和基于请求源端口的访问控制。该变量在请求处理过程中被设置,具体是在 NGINX 处理传入连接并初始化请求结构(用于存储各种与客户端相关的详细信息)时。 当客户端连接到服务器时,远端端口由操作系统确定并提供给 NGINX。在典型场景中,该端口号可以在 1024 到 65535 之间,因为 1-1023 范围内的端口被保留给众所周知的服务。它也可能经常变化,因为客户端可能来自不同的应用或环境,从而分配到不同的端口号。NGINX 在指令(例如通过 'log_format' 进行日志记录)中使用此变量,并在访问控制规则中根据源端口范围允许或拒绝请求。

配置示例

server {
    listen 80;
    location / {
        access_log /var/log/nginx/access.log 'Client IP: $remote_addr, Port: $remote_port';
    }
}

子系统

http

可缓存

上下文

http, server, location, if

$remote_port 的值并非总是可预测;同一客户端的不同请求之间可能会有所不同。

在安全规则中使用 $remote_port 时应谨慎;客户端应用可能会伪造端口。

该变量并非在所有上下文中可用;请确保在正确的上下文中使用它,例如 http、server 或 location。