为 apache 编写基于 C++11 线程的模块



我想在 C++11 (GCC 4.7) 中为 Apache 编写一个模块,并将其配置为:

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

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

我已经很久没有编写 Apache 模块了,但我认为模块无法控制子级是作为新的分支还是进程生成,我认为这是一个服务器范围的设置。

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

早在Apache 1.3.x时代,我曾经使用过《用Perl和C编写Apache Modules》一书,这本书主要集中在使用Perl上,但有足够的C API信息来弄清楚。 Apache 2.4 的开发人员文档展示了如何使用钩子和控制请求处理。

最新更新