-1

nginx と FastCGI に問題があります。私は Windows 7 で作業しており、次の項目を正常にコンパイル/インストール/セットアップしました:

  • nginx サーバー
  • FastCGI ライブラリ
  • spawn-fcgi-win32.exe

メッセージを Web サーバーに送り返すだけの単純な FastCGI アプリケーションを作成しました。これは、コードの簡略化されたバージョンです。

while(FCGI_Accept()) {
    hello();
}

を使用していくつかのプロセスを生成し、spawn-fcgi-win32.exeすべてが正常に機能しました。Web ブラウザーからアプリにアクセスすると、「hello」メッセージが返されました。

ただし、同時実行性を確認するために、アプリケーションを次のように変更しました。

while(FCGI_Accept()) {
    sleep10(); //sleep 10 seconds
    hello();
}

次に、ブラウザで 2 つの別々のタブを開き、アプリにアクセスしました。両方のタブが 10 秒後に「hello」メッセージを返すと予想していましたが、そのタイムアウト後に最初のタブだけがそれを返しました。2 番目のタブは 20 秒後にそれを実行しました。これはnginxのアクセスログです:

127.0.0.1 - クラウディ [2015 年 2 月 25 日: 17:45:16 +0100] "GET /foo.php HTTP/1.1" 200 3664 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0"

127.0.0.1 - クラウディ [2015 年 2 月 25 日: 17:45:26 +0100] "GET /foo.php HTTP/1.1" 200 3664 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0"

ほぼ同時にリクエストを送信しましたが、nginx は 10 秒後に 2 番目のリクエストを「認識」したことに注意してください。私の nginx 構成ファイルは、ワーカーごとに 4 つのワーカーと 1024 の接続を設定します。nginx がリクエストごとに 1 つずつ、2 つの同時ワーカーを生成しないのはなぜですか?

ところで、両方の FastCGI プロセスが動作していることは、プロセス ID と hello メッセージを一緒にダンプすることで確認済みです。

ありがとう

4

1 に答える 1

1

ここhttp://nginx-win.ecsds.eu/から適切なバージョンを使用し、インストーラーを使用して php/python/etc.. を機能させます。

于 2015-02-25T23:08:30.407 に答える