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模块。
