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 模組在此階段被調用。