我编写了一个Perl程序,用于搜索和操作一个文本文件。这个CGI进程直接将文件存入内存,根据用户的输入操作文件,然后生成HTML结果。
它的功能明智。但是,我知道一旦我在高容量服务器上部署,它将无法在适当的时候做出响应。我怀疑记忆是一个瓶颈。共享该文件的最佳方式是什么,一旦服务器启动它就会被读入内存,而不会再次读取?
我猜测的解决方案是一个服务器守护程序,它将文件加载到内存中并为其他进程/线程服务其数据。如果是这样,实施IPC的最佳方法是什么?
答案 0 :(得分:6)
使用FastCGI。它有效地将您的CGI程序转换为Web服务器调用的小型服务器。它很简单,适用于许多不同的Web服务器。由于您的CGI在其自己的进程中运行,因此它可以在与Web服务器不同的计算机上运行,您可以跨多个应用程序服务器扩展程序。它适用于大多数主流编程语言。
mod_perl的优点在于它可以让你使用Perl挖掘Apache的内容。如果你没有使用它的矫枉过正。 mod_perl有很多缺点。它将您与Apache联系起来,并将任何版本的Perl编译为mod_perl。它将所有Perl应用程序的配置和内存空间与Apache混合在一起,这会使配置复杂化并导致内存膨胀。 mod_perl非常复杂,难以升级。
答案 1 :(得分:2)
这就是创建mod_perl的原因。