c++ - 特殊协议(protocol)的 apache httpd 扩展帮助

标签 c++ apache http daemon

我想为我的特殊协议(protocol)创建一个 apache 扩展,它在与 apache 相同的端口上监听,但在特定目录或文件(如 PHP)上监听。我需要它来使用自定义服务器而不是 PHP 为我的游戏提供动力。我无法在不同的端口或不同的服务器上收听。

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

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

更新:

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

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

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

最佳答案

您不需要特殊的扩展名,只需 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/

相关文章:

apache - Apache2 上安装了 SSL,但 HTTPS 不工作

apache - 如何将 htaccess 重写规则应用于包含换行符 (%0A) 的 URL?

C#.NET XMPP over HTTP,无需第三方库

python - 在 Python 中 HTTP GET 的最快方法是什么?

c++ - 如何访问从 VTK 中的 STLreader 获得的网格的顶点和索引数组?

c++ - 如何创建一个新线程并在一段时间后终止它?

memset 之后的 C++ 放置新

spring - 将 OSB 转换为 Camel/Spring

Java拦截器处理REST API响应代码

c++ - std::pair 中有超过 2 个变量