私はFastCGI(fcgi-2.4.0)のソースを見て、実際にフォークの兆候はありません。 私が正しいとすれば、WebサーバーはFastCGIモジュールのプロセス(コンパイルされているか、SO/DLLとしてロードされている)を認識し、メインソケット(通常はポートTCP:80)の制御を処理します。FastCGIはどのようにWebサーバー(Apache 2.2以上など)で動作しますか?
On * nix FastCGIモジュールは、ファイル記述子全体(実際にはリスンソケット)にファイル書き込みロック(libfcgi/os_unix.c:989)を使用してそのソケットを「ロック」します。新しいコネクション収入がFastCGIモジュールだけがこれらを処理できるようになると、このようになります。 着信ソケットロックは、HTTP要求処理へのハンドオーバの直前に解放されます。
FastCGIモジュールとして見られるようには、nのFastCGIのマルチプロセス/スレッド(フォーク/のpthread_createのない内部使用)Iは、複数の同時接続の同時処理が(OS_SpawnChild介して)ウェブサーバからspwaningによって得られると仮定しませんモジュールプロセス。 たとえば、3つのFastCGIプロセス(Apacheが3 x OS_SpawnChildを呼び出す)を起動すると、最大3つの要求を同時に処理できるということですか?
A)FastCGIの私のビジョンは正しく働いていますか?
B)新しいプロセスを作成する/ローカルDBへの接続を作成するコストが無視できると考えられる場合、の従来の方法である実行可能アプローチに対するFastCGIの利点は何ですか?
ありがとう、 Ema! :-)
アール、おかげさまですが、私はすでにこれを...私はより具体的な答え(A、B)を求めていました。乾杯、 –