我想为我的特殊协议创建一个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答案 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