Как nginx обрабатывает сессию TCP/UDP
Сессия TCP/UDP от клиента обрабатывается поэтапно, в так называемых фазах:
-
Post-accept - Первая фаза после установления соединения с клиентом. В этой фазе вызывается модуль ngx_stream_realip_module.
-
Pre-access - Предварительная проверка доступа. В этой фазе вызываются модули ngx_stream_limit_conn_module и ngx_stream_set_module.
-
Access - Ограничение доступа клиента перед фактической обработкой данных. В этой фазе вызывается модуль ngx_stream_access_module, для njs вызывается директива js_access.
-
SSL - Закрытие TLS/SSL. В этой фазе вызывается модуль ngx_stream_ssl_module.
-
Preread - Чтение начальных байтов данных в буфер предварительного чтения (preread buffer), чтобы модули, такие как ngx_stream_ssl_preread_module, могли проанализировать данные до их обработки. Для njs в этой фазе вызывается директива js_preread.
-
Content - Обязательная фаза, в которой данные фактически обрабатываются, обычно проксируются к серверам обработчика, или заданное значение возвращается клиенту. Для njs в этой фазе вызывается директива js_filter.
-
Log - Последняя фаза, в которой записывается результат обработки сессии клиента. В этой фазе вызывается модуль ngx_stream_log_module.
© 2002-2021 Igor Sysoev
© 2011-2024 Nginx, Inc.
Licensed under the BSD License.
https://nginx.org/en/docs/stream/stream_processing.html