Nginx 如何处理 TCP/UDP 会话
客户端的 TCP/UDP 会话通过称为“阶段”的连续步骤进行处理
-
接受后
- 接受客户端连接后的第一个阶段。在此阶段调用 ngx_stream_realip_module 模块。
-
访问前
- 访问的初步检查。在此阶段调用 ngx_stream_limit_conn_module 和 ngx_stream_set_module 模块。
-
访问
- 实际数据处理前的客户端访问限制。在此阶段,调用 ngx_stream_access_module 模块,对于 NJS,调用 js_access 指令。
-
SSL
- TLS/SSL 终止。在此阶段调用 ngx_stream_ssl_module 模块。
-
预读
- 将数据的初始字节读入 预读缓冲区,以便允许 ngx_stream_ssl_preread_module 等模块在处理数据之前对其进行分析。对于 NJS,在此阶段调用 js_preread 指令。
-
内容
- 实际处理数据的强制阶段,通常将数据 代理 到 上游 服务器,或将指定值 返回 给客户端。对于 NJS,在此阶段调用 js_filter 指令。
-
日志
- 记录客户端会话处理结果的最后阶段。在此阶段调用 ngx_stream_log_module 模块。