Nginx Embedded Variables 嵌入式变量解析(4)
相关链接
一、目录
1.1 变量目录
1.1.24 ngx_stream_core_module
-
[**binary_remote_addr**](#binary_remote_addr)
-
[**bytes_received**](#bytes_received)
-
[**bytes_sent**](#bytes_sent)
-
[**connection**](#connection)
-
[**hostname**](#hostname)
-
[**msec**](#msec)
-
[**nginx_versio**](#nginx_versio)
-
[**pid**](#pid)
-
[**protocol**](#protocol)
-
[**proxy_protocol_addr**](#proxy_protocol_addr)
-
[**proxy_protocol_port**](#proxy_protocol_port)
-
[**proxy_protocol_server_addr**](#proxy_protocol_server_addr)
-
[**proxy_protocol_server_port**](#proxy_protocol_server_port)
-
[**proxy_protocol_tlv_**](#proxy_protocol_tlv_)
-
[**remote_addr**](#remote_addr)
-
[**remote_port**](#remote_port)
-
[**server_addr**](#server_addr)
-
[**server_port**](#server_port)
-
[**session_time**](#session_time)
-
[**status**](#status)
-
[**time_iso8601**](#time_iso8601)
-
[**time_local**](#time_local)
1.1.25 ngx_stream_geoip_module
-
[**geoip_area_code**](#geoip_area_code)
-
[**geoip_city**](#geoip_city)
-
[**geoip_city_continent_code**](#geoip_city_continent_code)
-
[**geoip_city_country_code**](#geoip_city_country_code)
-
[**geoip_city_country_code3**](#geoip_city_country_code3)
-
[**geoip_city_country_name**](#geoip_city_country_name)
-
[**geoip_country_code**](#geoip_country_code)
-
[**geoip_country_code3**](#geoip_country_code3)
-
[**geoip_country_name**](#geoip_country_name)
-
[**geoip_dma_code**](#geoip_dma_code)
-
[**geoip_latitude**](#geoip_latitude)
-
[**geoip_longitude**](#geoip_longitude)
-
[**geoip_org**](#geoip_org)
-
[**geoip_postal_code**](#geoip_postal_code)
-
[**geoip_region**](#geoip_region)
-
[**geoip_region_name**](#geoip_region_name)
1.1.26 ngx_stream_limit_conn_module
- [**limit_conn_status**](#limit_conn_status)
1.1.27 ngx_stream_mqtt_preread_module
- [**mqtt_preread_clientid**](#mqtt_preread_clientid)
- [**mqtt_preread_username**](#mqtt_preread_username)
1.1.28 ngx_stream_proxy_protocol_vendor_module
- [**proxy_protocol_tlv_aws_vpce_id**](#proxy_protocol_tlv_aws_vpce_id)
- [**proxy_protocol_tlv_azure_pel_id**](#proxy_protocol_tlv_azure_pel_id)
- [**proxy_protocol_tlv_gcp_conn_id**](#proxy_protocol_tlv_gcp_conn_id)
1.1.29 ngx_stream_realip_module
- [**realip_remote_addr**](#realip_remote_addr)
- [**realip_remote_port**](#realip_remote_port)
二、解释
2.24 ngx_stream_core_module
2.24.1 变量列表
$binary_remote_addr
$bytes_received
功能:返回从客户端接收到的字节数。
描述:此变量表示自连接建立以来从客户端接收的所有数据的总字节数。它对于监控流量使用情况非常有用。
示例:
nginx
server {
listen 80;
location / {
add_header X-Bytes-Received $bytes_received;
}
}
假设从客户端接收到的数据总量为1024字节,则响应头将包含X-Bytes-Received: 1024
。
$bytes_sent
$connection
$hostname
$msec
$nginx_version
$pid
$protocol
功能:返回用于与客户端通信的协议:TCP 或 UDP。
描述:此变量指示当前连接使用的传输层协议类型,便于了解和记录连接的基础协议。
示例:
nginx
server {
listen 80;
location / {
add_header X-Protocol $protocol;
}
}
如果连接是通过TCP协议建立的,则响应头将包含X-Protocol: TCP
;如果是UDP协议,则响应头将包含X-Protocol: UDP
。
$proxy_protocol_addr
$proxy_protocol_port
$proxy_protocol_server_addr
$proxy_protocol_server_port
$proxy_protocol_tlv_
$remote_addr
$remote_port
$server_addr
$server_port
$session_time
功能:返回会话持续时间,以秒为单位,精确到毫秒。
描述:此变量提供自连接建立以来的时间长度,精确到毫秒级别,有助于监控会话时长和性能分析。
示例:
nginx
server {
listen 80;
location / {
add_header X-Session-Time $session_time;
}
}
假设会话持续时间为5.789秒,则响应头将包含X-Session-Time: 5.789
。
$status
$time_iso8601
$time_local
2.25 ngx_stream_geoip_module
2.25.1 变量列表
$geoip_area_code
$geoip_city
$geoip_city_continent_code
$geoip_city_country_code
$geoip_city_country_code3
$geoip_city_country_name
$geoip_country_code
$geoip_country_code3
$geoip_country_name
$geoip_dma_code
$geoip_latitude
$geoip_longitude
$geoip_org
$geoip_postal_code
$geoip_region
$geoip_region_name
2.26 ngx_stream_limit_conn_module
2.26.1 变量列表
$limit_conn_status
2.27 ngx_stream_mqtt_preread_module
2.27.1 变量列表
$mqtt_preread_clientid
功能:返回MQTT CONNECT消息中的客户端ID(clientid)值。
描述:此变量用于获取MQTT连接请求中的客户端ID,便于识别和管理连接的客户端。
示例:
nginx
stream {
upstream mqtt_backend {
server backend.example.com:1883;
}
server {
listen 1883;
proxy_pass mqtt_backend;
mqtt_preread on;
log_format mqtt_custom '$remote_addr - $mqtt_preread_clientid';
access_log /var/log/nginx/mqtt_access.log mqtt_custom;
}
}
如果MQTT CONNECT消息中的客户端ID为client123
,则日志条目将包含client123
。
$mqtt_preread_username
功能:返回MQTT CONNECT消息中的用户名(username)值。
描述:此变量用于获取MQTT连接请求中的用户名,便于验证和授权。
示例:
nginx
stream {
upstream mqtt_backend {
server backend.example.com:1883;
}
server {
listen 1883;
proxy_pass mqtt_backend;
mqtt_preread on;
log_format mqtt_custom '$remote_addr - $mqtt_preread_username';
access_log /var/log/nginx/mqtt_access.log mqtt_custom;
}
}
如果MQTT CONNECT消息中的用户名为user456
,则日志条目将包含user456
。