1

C++11 (GCC 4.7) で Apache 用のモジュールを作成し、次のように構成したいと思います。

  • 私のコードのカスタム初期化関数は、サーバーの起動時に 1 回呼び出されます。
  • リクエスト処理ワーカーは、すべて同じプロセス内の pthread として apache によって生成されます。(プロセスをフォークしない)
  • HTTP 要求は、コードに記述したブロッキング関数を呼び出すワーカー スレッドからの関数呼び出しによって処理されます。

これはすべて可能ですか?それとも、Apache はこのように設計されていませんか? 可能であれば、それを構成し、モジュールを構築して接続する方法のスケッチは何ですか?

4

1 に答える 1

1

Apache モジュールを作成してから長い時間が経ちましたが、モジュールが子を新しいフォークまたはプロセスとして生成するかどうかを制御できるとは思いません。それはサーバー全体の設定だと思います。

そうでなければ、それはすべて非常に可能です。Apache は、サーバーの実行時のさまざまな時点でモジュールのコードを呼び出すために使用できるフックを提供します。

Apache 1.3.x の時代に戻って、私はPerlの使用に主に焦点を当てた本「 Writing Apache Modules with Perl and C 」を使用していましたが、C API について理解するのに十分な情報が含まれています。Apache 2.4の開発者向けドキュメントには、フックの使用方法とリクエスト処理の制御方法が示されています。

于 2012-08-13T20:47:40.980 に答える