push_stream_subscriber

Директива `push_stream_subscriber` определяет `location` для подписки на каналы push stream в NGINX.

Синтаксисpush_stream_subscriber;
По умолчаниюnone
Контекстlocation
Аргументыnone

Описание

Директива push_stream_subscriber является частью NGINX Push Stream Module, которая обеспечивает потоковую передачу данных в реальном времени по HTTP. При размещении в блоке location она настраивает NGINX на приём запросов на подписку на push-уведомления, позволяя клиентам получать живые обновления по указанным каналам. Эта директива оптимизирует соединения, используя протоколы, такие как Comet, EventSource и WebSocket, что позволяет применять различные приёмы стриминга, подходящие для современных веб-приложений.

Когда подписчик подключается к URL, совпадающему с указанным location, NGINX устанавливает долгоживущую HTTP-связь, по которой сервер может отправлять данные клиенту по мере их появления. Директива не требует аргументов, но должна использоваться совместно с директивой push_stream_channels_path для определения конкретного канала, из которого подписчик будет получать сообщения. Это обеспечивает гибкость при динамическом определении каналов на основе ввода пользователя или параметров URL.

Важно убедиться, что директива push_stream_shared_memory_size правильно настроена для выделения достаточного объёма общей памяти для управления подключениями подписчиков и буферизации сообщений. Кроме того, администраторы могут устанавливать ограничения на максимальное число подписчиков или максимальное количество сообщений, сохраняемых в каждом канале, с помощью других связанных директив, что поможет оптимизировать производительность и использование ресурсов push stream сервиса.

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

server {
    location ~ /sub/(.*) {
        push_stream_subscriber;
        push_stream_channels_path $1;
    }
}

Убедитесь, что location block корректно сопоставляет subscriber URLs; в противном случае запросы будут завершаться с ошибкой.

Избегайте чрезмерного количества подключений без надлежащих ограничений; это может перегрузить ресурсы сервера.

Имейте в виду, что directive следует интегрировать с shared memory configurations для обеспечения оптимальной производительности.

← Ко всем директивам