mod_perl与mod_fastcgi的比较

15

我正在使用Perl开发一个Web应用程序,需要进行一些大量的数字计算,因此需要使用一些C语言。到目前为止,我遇到的主要问题是无法确定是否应该使用mod-perl、mod-fastcgi或两者结合来运行我的脚本,因为我很难分析每个模块的优缺点。

有没有人可以提供一个摘要或给出一个链接,让我可以找到一些比较信息,并可能提供一些带有示例的建议?

3个回答

24

它们是完全不同的东西。

mod_fastcgi(顺便提一下,建议使用mod_fcgid)仅支持FCGI协议,以便更快地执行CGI,并具有一些旋钮来控制同时运行多少进程等功能,而没有更多的功能。

另一方面,mod_perl是一个应用程序开发平台,将大部分Apache内部暴露给您,因此您可以从代码中调整每个Web服务器旋钮,加速CGI等更多功能

如果您只想快速运行CGI,并希望支持尽可能多的主机,则应坚持支持这两种运行代码的方式,可能还包括标准CGI。

如果您关心最大效率而不考虑灵活性,则可以选择单一平台,可能是mod_perl。

但是,最明智的选择可能是在任何地方运行并使用框架构建应用程序,该框架将负责利用特定的执行方式的优势(如Catalyst)。


看起来Catalyst框架已经迁移了。 - Adam Ness

7

我建议您使用像Catalyst这样的框架来处理这些细节。对于大多数应用程序而言,程序连接到Web服务器的方式并不重要,只要以高效的方式完成即可。选择mod_perl和FastCGI之间应由部署它的系统管理员做出,而不是开发人员。


9
我不认为这应该是系统管理员的职责。如果作为程序员,你想要访问Apache内部以提高产品的竞争力,那是你自己的决定,而不是机器管理员的决定。希望你所在的组织能够建立起支持产品的系统管理员模式,而不是反过来。 - mpeters
如果你的应用程序是你业务的核心,那么我同意,但在许多情况下并非如此,你必须使用现有的基础设施。 - Leon Timmermans
6
这更像是产品推荐而非回答。你没有回答 fastcgi 和 mod_perl 之间的比较问题。 - Hawken

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接