$session_time
$session_time 变量返回当前流会话的持续时间(以秒为单位)。 — NGINX Core (Stream)
$session_time
NGINX Core (Stream)
说明
$session_time 变量在 NGINX 中用于衡量当前流会话的持续时间,专门用于 Stream 模块。该变量在 NGINX 服务器为流建立连接时被设置,并在连接关闭或完成之前持续更新。它表示会话处于活动状态的总时间(以秒为单位),因此在监控和日志记录方面很有用,同时也可用于根据会话持续时间配置会话限制。 通常,当连接启动时,$session_time 将从零开始,并随时间推移而增加,反映会话的持续时间。该值在需要强制会话超时或分析流式应用中的会话性能和使用模式时尤其有用。 需要注意的是,此变量特定于 Stream 模块,在 HTTP 或其他模块中不可用。因此,它主要用于涉及 TCP/UDP 的流媒体上下文,而不是标准的网页服务场景。
配置示例
stream {
server {
listen 12345;
log_format custom_format '$remote_addr - $session_time';
access_log /var/log/nginx/stream_access.log custom_format;
}
}子系统
stream可缓存
否上下文
stream, server, location⚠
确保在您的 NGINX 配置中启用 Stream 模块;否则该变量将无法访问。
⚠
$session_time 变量仅在 Stream 处理期间有效,不能在 HTTP 上下文中使用。
⚠
在条件判断中使用 $session_time 时要小心,因为这些条件会在请求处理的不同阶段被求值。请确保它与实际所需的会话持续时间相符。