apache httpd扩展帮助

时间:2011-02-03 23:50:50

标签: c++ apache http daemon

我想为我的特殊协议创建一个apache扩展,它可以在与apache相同的端口上侦听,但是在特定的目录或文件(如php)上。我需要这个用自定义服务器来支持我的游戏,而不是用PHP。我无法在不同的端口或不同的服务器上收听。

我不想创建一个php文件或类似的东西。我需要一个完整的可执行程序,我可以在其中动态分配内存等。程序完全在apache服务器之外,但是apache'传递'对该程序的特殊请求(例如.foo文件或/ foo /目录)

我需要一个教程或帮助来为apache创建自定义扩展。

更新:

我想创建一个在我的服务器后台运行的守护进程,然后当apache发送请求时,它将其转发给我的守护进程,然后守护进程生成请求,然后发送回答。这很重要,不像php脚本文件或perl,因为这不执行一次,程序一直在运行,等待apache发送一些东西。我不知道如何与apache沟通。但我认为这不是CGI,因为如果我读得很好,CGI运行就像:apache获取reuest,然后为我的php或perl文件启动一个新进程,通过参数和stdIN发送数据,然后当该过程结束,从stdOut读取答案并将其发回,然后该过程结束。

但是我的程序还在运行。我需要在后台运行我的程序,因为我需要将数据存储在启动时加载的内存中。

像这样: http://i53.tinypic.com/v45jzo.jpg

2 个答案:

答案 0 :(得分:2)

您不需要特殊的扩展程序,只需register a CGI handler即可调用您的处理代码。

修改的 您可以为您的守护程序设置proxy请求的apache。

您需要返回格式正确的HTTP响应,否则无法正常工作。您应该阅读Apache和基于Web的通信,以便更好地了解守护程序所需的内容。

ProxyRequests Off

<Proxy *>
Order deny,allow
Allow from all
</Proxy>

ProxyPass /foo http://foo.example.com/bar
ProxyPassReverse /foo http://foo.example.com/bar 

P.S。编写Apache扩展程序很多更难以移植。

答案 1 :(得分:0)

回答关于CGI是什么的第二个问题

CGI代表公共网关接口。

当您注册处理程序时,Byron指出您告诉apache将“请求”提供给您的应用程序。 apache侦听应用程序的输出stdout并将结果返回给用户。

应用程序的参数都是通过您可以从应用程序访问的环境提供的。

但如果你不理解这些东西,你就会遇到问题。例如你必须设置某些标题。

DC