我想为我的特殊协议(protocol)创建一个 apache 扩展,它在与 apache 相同的端口上监听,但在特定目录或文件(如 PHP)上监听。我需要它来使用自定义服务器而不是 PHP 为我的游戏提供动力。我无法在不同的端口或不同的服务器上收听。
我不想创建 PHP 文件或类似文件。我需要一个完整的可执行程序,我可以在其中动态分配内存等。该程序完全在 apache 服务器之外,但是 apache“通过”对该程序的特殊请求(例如 .foo 文件或/foo/目录) .
我需要教程或帮助来为 apache 创建自定义扩展。
更新:
我想创建一个在我的服务器后台运行的守护进程,然后当 apache 发送请求时,它将此转发到我的守护进程,然后守护进程生成请求,然后发送一个应答。这一点很重要,它不像 php 脚本文件或 perl,因为它不会执行一次,程序一直在运行,等待 apache 发送一些东西。我不知道如何与 apache 通信。但我认为这不是 CGI,因为如果我读得好,CGI 运行就像:apache 获取请求,然后为我的 php 或 perl 文件启动一个新进程,通过参数和 stdIN 发送数据,然后当流程结束,从标准输出中读取答案并将其发回,流程结束。
但是我的程序还在运行。我需要一直在后台运行我的程序,因为我需要将数据存储在启动时加载的内存中。
最佳答案
您不需要特殊的扩展名,只需 register a CGI handler调用您的处理代码。
编辑 您可以将 apache 设置为 proxy请求你的守护进程。
您将需要返回格式正确的 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
附言编写 Apache 扩展要困难并且不可移植。
关于c++ - 特殊协议(protocol)的 apache httpd 扩展帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4893108/