$session_time
Переменная $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Убедитесь, что модуль Stream включен в конфигурации NGINX; в противном случае переменная будет недоступна.
Переменная $session_time действительна только во время обработки Stream и не будет работать в HTTP-контекстах.
Будьте осторожны при использовании $session_time в условных выражениях, поскольку они вычисляются в разное время в процессе обработки запроса. Убедитесь, что это соответствует фактической требуемой продолжительности сессии.