我正在使用Perl开发一个带有一些C的Web应用程序,以便进行一些重载数字运算。到目前为止我遇到的主要问题是试图决定是否应该使用mod-perl,mod-fastcgi或两者来运行我的脚本,因为我很难分析每个mod的优点和缺点。< / p>
任何人都可以发布摘要或提供一个链接,我可以在其中找到一些比较信息,也许还有一些建议和示例?
答案 0 :(得分:23)
他们是完全不同的野兽。
mod_fastcgi(顺便提一下,建议使用mod_fcgid)只支持FCGI协议,通过一些旋钮更快地执行CGI,以控制同时运行多少进程,而不是更多。
另一方面,mod_perl是一个用于开发应用程序的平台,可以向您公开大多数Apache内部,因此您可以从代码中调整每个Web服务器旋钮,加速CGI和much more。如果您希望快速运行CGI并希望尽可能多地支持主机,那么您应该坚持支持这两种方式来运行代码,也可能支持标准CGI。
如果您以灵活性为代价关心最高效率,那么可以瞄准单个平台,可能是mod_perl。
但是,最可靠的选择是在任何地方运行并使用框架来构建应用程序,该应用程序将使用特定执行方式的优点(如果存在),例如Catalyst。
答案 1 :(得分:7)
我建议你使用像Catalyst这样的框架来处理这些细节。对于大多数应用程序而言,只要以有效的方式完成,程序如何连接到Web服务器并不重要。 mod_perl和FastCGI之间的选择应由部署它的系统管理员而不是开发人员进行。
答案 2 :(得分:5)
这是一个网站,其中包含mod_perl,mod_fastcgi,cgi(Perl)和Java servlet的一些实际性能比较 - 用于非常基本的脚本:https://sites.google.com/site/arjunwebworld/Home/programming/apache-jmeter
总结:
cgi - 1200+ requests per minute
mod_perl - 6000+ requests per minute (ModPerl::PerlRun only)
fast_cgi - 6000+ requests per minute
mod_perl - 6000+ requests per minute (ModPerl::Registry)
servlets - 2438 requests per minute.
PerlMonks上有一个旧线程比较mod_perl和fastcgi:http://www.perlmonks.org/?node_id=108008