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 プロセス マネージャーはありますか?