pass

Директива 'pass' определяет, куда направлять запросы клиентов в stream-модуле NGINX. — NGINX Stream Core

pass
stream server
Синтаксисpass upstream_name;
По умолчаниюnone
Контекстstream server
МодульNGINX Stream Core
Аргументы1

Описание

Директива 'pass' используется для переадресации запросов клиентов на указанный upstream server в контексте stream-модуля NGINX, который обычно применяется для TCP и UDP трафика. Директива указывает upstream server, который будет обрабатывать входящие соединения, обеспечивая возможности load balancing и failover. Директива может содержать опции, такие как указание server name или номера порта. Когда соединение соответствует критериям, определённым в stream-блоке, директива 'pass' инструктирует NGINX установить соединение с указанным upstream server и ретранслировать пакеты данных между клиентом и upstream server. Это фактически заставляет NGINX выступать в роли proxy для stream-трафика, предоставляя такие возможности, как SSL termination и поддержание connection pool. Администраторам важно убедиться, что конфигурация указанного upstream server корректна, чтобы избежать сбоев соединения. Директива может применяться в различных контекстах внутри 'stream' блока, но чаще всего определяется внутри 'server' блока, где указывается одна upstream destination. Такой модульный подход обеспечивает гибкость в маршрутизации и эффективном управлении соединениями.

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

stream {
    upstream backend {
        server backend1.example.com:1234;
        server backend2.example.com:1234;
    }
    server {
        listen 1234;
        pass backend;
    }
}

Убедитесь, что upstream server доступен; в противном случае соединения не будут установлены.

Избегайте использования директивы 'pass' в HTTP контекстах; она специфична для stream контекстов.

Учитывайте особенности обработки соединений — NGINX держит соединения открытыми для эффективной передачи данных, что при ненадлежащем управлении может привести к проблемам с ресурсами.