将简单的Perl CGI扩展为高容量服务器

Fac*_*ace 2 perl cgi ipc

我编写了一个Perl程序,用于搜索和操作一个文本文件.此CGI进程将文件直接存入内存,根据用户的输入操作文件,然后生成HTML结果.

它功能明智.但是,我知道一旦我在高容量服务器上部署,它将无法在适当的时候做出响应.我怀疑记忆是一个瓶颈.共享该文件的最佳方式是什么,一旦服务器启动它就会被读入内存,而不会再次读取?

我猜的解决方案是一个服务器守护程序,它将文件加载到内存中并为其他进程/线程提供数据.如果是这样,实施IPC的最佳方法是什么?

Sch*_*ern 6

使用FastCGI.它有效地将您的CGI程序转换为Web服务器调用的小型服务器.它很简单,适用于许多不同的Web服务器.由于您的CGI在其自己的进程中运行,因此它可以在与Web服务器不同的计算机上运行,​​您可以跨多个应用程序服务器扩展程序.它适用于大多数主流编程语言.

mod_perl的优点是它可以让你使用Perl来挖掘Apache的内核.如果你没有使用它的矫枉过正.mod_perl有很多缺点.它将您与Apache联系起来,并将任何版本的Perl编译为mod_perl.它将所有Perl应用程序的配置和内存空间与Apache混合在一起,这会使配置复杂化并导致内存膨胀.mod_perl非常复杂,难以升级.