mod_perl vs mod_fastcgi

gvk*_*vkv 15 apache perl mod-perl mod-fastcgi

我正在使用Perl开发一个带有一些C的Web应用程序,这对于一些重载数字运算来说是必要的.到目前为止我遇到的主要问题是试图决定是否应该使用mod-perl,mod-fastcgi或两者来运行我的脚本,因为我很难分析每个mod的优点和缺点.

任何人都可以发布摘要或提供一个链接,我可以找到一些比较信息,也许一些建议与示例?

Vin*_*vic 23

他们是完全不同的野兽.

mod_fastcgi(顺便说一句,推荐使用mod_fcgid)只是支持FCGI协议,可以通过一些旋钮更快地执行CGI,以控制它同时运行多少进程,而不是更多.

另一方面,mod_perl是一个开发应用程序的平台,它向您公开大多数Apache内部,因此您可以从代码中调整每个Web服务器旋钮,加速CGI 等等.

如果您希望快速运行CGI并希望尽可能多地支持主机,那么您应该坚持支持这两种方式来运行代码,也可能支持标准CGI.

如果您以灵活性为代价关心最高效率,那么您可以瞄准单个平台,可能是mod_perl.

但是,最可靠的选择是在任何地方运行并使用框架来构建应用程序,该应用程序将负责使用特定的执行方式(如果存在)的优点,如Catalyst.


Leo*_*ans 7

我建议你使用像Catalyst这样的框架来处理这些细节.对于大多数应用程序而言,只要以有效的方式完成,程序如何连接到Web服务器并不重要.mod_perl和FastCGI之间的选择应由部署它的sysadmin而不是开发人员进行.

  • 我不同意它应该是系统管理员的工作.如果您希望程序员能够访问Apache内部,以使您的产品具有您的决定优势,而不是机器的管理员.希望您的组织设置为系统管理员支持产品,而不是相反. (8认同)
  • 这是产品认可而非答案.你没有回答fastcgi和mod_perl如何比较的问题. (6认同)

Ros*_*ill 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.
Run Code Online (Sandbox Code Playgroud)

PerlMonks上有一个比较mod_perl和fastcgi的旧线程:http://www.perlmonks.org/?node_id = 1080800