コンセプト
これらのページでは、ngx_mrubyがnginxの中でRubyをどう実行するかを説明します。リクエストの処理のどこで各ハンドラが動くか、フィルタがレスポンスをどう受け取るか、ハンドラがワーカーをブロックせずにどう待つか、リクエストをまたいで何が残るかを扱います。
- リクエストのフェーズ:nginxのHTTPのフェーズを順に並べ、各フェーズでRubyを実行するngx_mrubyのディレクティブを示します。
- フィルタ:ngx_mrubyのヘッダフィルタとボディフィルタが、nginxのフィルタチェーンのどこにあり、それぞれが何を受け取るかを説明します。
- ブロックせずに待つ:
Nginx::Async.sleepとNginx::Async::HTTP.sub_requestを呼んだハンドラが、ワーカーをnginxに返して待つ仕組みを説明します。 - ライフタイム:ワーカーごとに1つの
mrb_stateがあることと、ワーカーがリクエストをまたいで何を保つかを説明します。 - 信頼境界:ngx_mrubyが何を信頼し、何をクライアントの入力として扱い、スクリプトが何に責任を持つかを説明します。