nginx が TCP/UDP セッションを処理する方法
クライアントからの TCP/UDP セッションは、段階と呼ばれる一連の手順で処理されます。
-
Accept 後
- クライアント接続の受け入れ後の最初の段階。この段階では、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 モジュールが呼び出されます。