我正在设计一个应用程序,该应用程序将由3-4个服务组成,这些服务作为单独的进程运行,并由适当的IPC链接。系统将有一个Web界面,我想使用任何网络服务器。
应该在某个URL下访问Web界面,该URL允许在同一个Web服务器上执行完全不同的其他URL。我打算使用该URL下面的路径来指定Web界面应该做什么。它具有供网络上的其他应用程序使用的设施,以及人类在浏览器中进行交互的功能。
关闭袖口,我的工作方式如下:
现在,我真正想要的是避免前两个步骤,或者如果我不能,避免第二个步骤,因为我害怕我在不必要的开销上浪费性能(来自其他应用程序的请求)可能很频繁。)
例如,PHP可以打开与MySQL数据库的持久连接,这些连接在脚本运行时仍然存在,并且下次不需要重新创建,但我不知道它们是如何实际执行的。另外,据我所知,Apache模块在服务器启动时会加载一次,因此可能会删除第一步,但会将我绑定到Apache。那么,有什么方法可以将特定URL的处理程序挂钩到不同的Web服务器上?我不想处理HTTP,否则我可能只是使用代理设置到第二台服务器,但它似乎是如此重新发明轮子。如果您认为,CGI很好并且有处理大量类似结构请求的示例,请告诉我。
答案 0 :(得分:4)
FastCGI不是为每个请求创建新进程,而是使用单个持久进程,该进程在其生命周期内处理许多请求。 - Wikipedia: FastCGI
答案 1 :(得分:3)
即使在适度负荷下,CGI也是一种非常难以控制的野兽。 FastCGI是一个选项,但您可能还会找到一个mod_XXXX包,其中XXXX是您的语言名称。例如,有一个用于ruby,perl和python的mod,可能还有其他几个。