私は現在高負荷プロジェクトを開発しています。C/FastCGI/nginx の組み合わせを使用する必要があります。
問題は、FastCGI アプリケーションをスレッド/プロセスで実行する必要があることです。
私はそれを行う2つの方法を知っています:
1) プログラムをコンパイルし、spawn-fcgiを使用してプロセスをフォークします。(これは使えません)
2) を実行FCGX_Init()
し、10 個のプロセスに pre-fork する BEFOREwhile (FCGX_Accept_r(&request) >= 0)
3) pthreads AFTER を実行するwhile (FCGX_Accept_r(&request) >= 0)
だから、私の質問は: whis は fastcgi アプリケーションを実行する最速の方法です。この後、fastcgiアプリケーションを事前にフォークできますか:
int sock = FCGX_OpenSocket(":9000", 10);
FCGX_InitRequest(&request, sock, 0);
10 個のプロセスが単一のソケットをリッスンできますか? N 個のプロセスを実行している場合、スレッドを使用する必要がありますか? これで十分ですか?