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
- 将数据的初始字节读入预读缓冲区,以允许 ngx_stream_ssl_preread_module 等模块在处理数据之前对其进行分析。 对于 njs, js_preread 指令 在此阶段调用。
-
Content
- 实际处理数据的强制性阶段,通常代理到上游服务器, 或指定的值 将返回给客户端。 对于 njs, js_filter 指令 在此阶段调用。
-
Log
- 最后阶段 其中记录了客户端会话处理的结果。 在此阶段调用 ngx_stream_log_module 模块。