nginx 如何处理 TCP/UDP 会话

客户端的 TCP/UDP 会话按照连续的步骤进行处理,这些步骤称为阶段

Post-accept
接受客户端连接后的第一个阶段。ngx_stream_realip_module 模块在此阶段被调用。
Pre-access
访问前的初步检查。ngx_stream_limit_conn_modulengx_stream_set_module 模块在此阶段被调用。
Access
实际数据处理前的客户端访问限制。在此阶段,调用 ngx_stream_access_module 模块;对于 njs,则调用 js_access 指令。
SSL
TLS/SSL 终止。ngx_stream_ssl_module 模块在此阶段被调用。
Preread
将初始数据字节读入 preread 缓冲区,以便像 ngx_stream_ssl_preread_module 这样的模块在处理数据之前对其进行分析。对于 njs,在此阶段调用 js_preread 指令。
Content
数据在此阶段被实际处理,是必需阶段,通常被代理上游服务器,或将指定值返回到客户端。对于 njs,在此阶段调用 js_filter 指令。
Log
记录客户端会话处理结果的最终阶段。ngx_stream_log_module 模块在此阶段被调用。