$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

Убедитесь, что модуль Stream включен в конфигурации NGINX; в противном случае переменная будет недоступна.

Переменная $session_time действительна только во время обработки Stream и не будет работать в HTTP-контекстах.

Будьте осторожны при использовании $session_time в условных выражениях, поскольку они вычисляются в разное время в процессе обработки запроса. Убедитесь, что это соответствует фактической требуемой продолжительности сессии.