1

我想用 C++11 (GCC 4.7) 为 Apache 编写一个模块并配置它:

  • 我的代码中的自定义初始化函数在服务器启动时调用一次。
  • 请求处理工作者由 apache 作为 pthread 生成,都在同一个进程中。(不分叉进程)
  • HTTP 请求由来自工作线程的函数调用处理,该函数调用调用我在代码中编写的阻塞函数。

这一切有可能吗?或者 Apache 不是这样设计的?如果可能的话,如何配置它以及构建和附加模块的草图是什么?

4

1 回答 1

1

自从我编写 Apache 模块以来已经有很长时间了,但我认为模块无法控制子节点是否作为新的分叉或进程产生,我认为这是一个服务器范围的设置。

否则,这一切都很有可能。Apache 提供了可用于在服务器运行时的不同时间调用模块代码的钩子。

回到 Apache 1.3.x 时代,我曾经使用《用 Perl 和 C 编写 Apache 模块》一书,它主要侧重于使用 Perl,但有足够的关于 C API 的信息来弄清楚它。Apache 2.4的开发人员文档展示了如何使用钩子和控制请求处理。

于 2012-08-13T20:47:40.980 回答