$protocol
Переменная $protocol в контексте NGINX Stream возвращает протокол, используемый в соединении, например TCP или UDP. — NGINX Core (Stream)
Описание
Переменная $protocol в NGINX Stream — автоматически задаваемая переменная, которая становится доступной в той же области видимости, что и другие stream directives, особенно во время stream block execution. Эта переменная указывает протокол установленного соединения — TCP или UDP. Она преимущественно используется для организации логирования, управления доступом или условной конфигурации в зависимости от типа обрабатываемого протокола. Переменная устанавливается при установлении соединения с сервером, в зависимости от протокола, указанного в server и upstream blocks. Типичные значения этой переменной включают 'tcp' и 'udp', что даёт чёткое различие типов обрабатываемого трафика. Это особенно полезно в средах, где один и тот же процесс сервера обрабатывает как TCP, так и UDP, позволяя применять разные конфигурации и стратегии логирования в зависимости от протокола.
Пример конфига
stream {
server {
listen 12345;
proxy_pass backend;
log_format custom_format '$remote_addr - $protocol';
access_log /var/log/nginx/access.log custom_format;
}
}Подсистема
streamКэшируется
ДаКонтексты
stream, serverУбедитесь, что блок stream правильно определён; в противном случае переменная не будет установлена.
Переменная $protocol доступна только в контекстах stream, а не в контексте http или в других контекстах.