2

Windows (2008 R2 x64 を想定) で適切な速度/容量で Perl Web アプリケーションを実行したいと考えています。

現在、私のアプリは Mojolicious に基づいており、Strawberry Perl を使用し、Apache 2.2-win32 を介して CGI として実行しています。約 20000 行のコードで、perl プロセスの作成には多くの時間がかかります。実際の処理はほんの一瞬ですが、ほぼ 1 ~ 2 秒です。アプリが Fast CGI または永続的なスタイルで構成されている場合、はるかに高速に実行され、はるかに多くの要求/秒を提供できると思います。

私が Linux を使用している場合、おそらく PSGI/Plack/Starman および Nginx リバース プロキシを使用していたでしょう。残念ながら、Starman/Starlet は Win32 をサポートしていません。

Morbo/Twiggy は、webapp がブロック (DB 呼び出し) を行い、一部の要求では完了するまでに時間がかかるため、私のニーズを満たしていません。

だから私は今、Fast CGI ソリューションを検討しています。残念ながら、Apache と mod_fcgid は Perl ( Stackoverflow )では動作しません。また、2.4 の mod_fastcgi と互換性のあるバイナリをまだ見つけたり、作成したりできません。まだ試していないのは mod_fastcgi + Apache 2.2 ですが、Apache 2.4 のままでよかったと思っています。

また、Mojo::Server::FastCGI と一緒に独自の FCGI プロセス マネージャー (プリフォークを管理するもの) を実行し、代わりに mod_proxy_fcgi を使用してリバース プロキシを実行できるかどうかも考えています。Perl モジュール FCGI::ProcManager も Win32 をサポートしていません。おそらくC#で、他のプロセスマネージャーはありますか?(できれば、さらにハッキングするためにC#で)

質問を要約しましょう -

  • Windows で Perl Web アプリを CGI よりもはるかに高速に実行する最良の方法は何ですか?ただし、ノンブロッキング スタイルではありません。
  • そしておそらくそれは、mod_fcgid を Perl で動作させる方法は? それとも、fcgi プロセス マネージャーはありますか?
4

2 に答える 2

2

Mojolicious + mod_psgi + apache を使用できます。

ここにはコンパイル済みのバイナリがありますが、Apache 2.2 の場合は次のようになります。

http://strawberryperl.com/package/kmx/mod_psgi/

-- マイク

于 2012-08-23T17:46:24.260 に答える
1

スレッド化された Plack サーバーThrallを使用できます。

于 2013-07-16T13:39:21.343 に答える