$pipe

Переменная $pipe указывает, обрабатывается ли запрос в режиме пайплайнинга. — NGINX Core (HTTP)

$pipe NGINX Core (HTTP)

Описание

Переменная $pipe используется в сервере NGINX для определения того, обрабатывается ли запрос посредством HTTP-пайплайнинга. Пайплайнинг — это техника, при которой несколько запросов могут быть отправлены по одному соединению, что позволяет клиенту отправлять дополнительные запросы до получения ответов на предыдущие. В определённых сценариях это может повысить производительность, особенно для веб‑браузеров, отправляющих несколько запросов для одновременной загрузки ресурсов. Эта переменная доступна для ссылки в конфигурационных файлах NGINX, например в директивах, которые должны условно обрабатывать запросы в зависимости от того, используются ли пайплайнинг. При получении запроса NGINX устанавливает значение переменной $pipe соответствующим образом: оно устанавливается в "pipelined", если запрос является пайплайнингом, и не устанавливается (или возвращает пустую строку) в противном случае. Типичное использование переменной $pipe включает логирование и управление доступом или обработкой ответов на основе того, обрабатывается ли запрос как пайплайнинг. Например, можно записывать разные сообщения для пайплайнинг- и непайплайнинг‑запросов или применять разные механизмы кэширования в зависимости от значения этой переменной.

Пример конфига

http {
    log_format custom_format '[$pipe] $remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent"';

    access_log /var/log/nginx/access.log custom_format;
}

Подсистема

http

Кэшируется

Да

Контексты

http, server, location, if

Пайплайнинг не поддерживается всеми браузерами; это может привести к путанице, если $pipe используется для значительной серверной логики без соответствующих проверок.

Если конфигурация явно не записывает значение $pipe в лог, это может привести к недопониманиям при отладке или настройке производительности.