【发布时间】:2017-12-19 17:48:16
【问题描述】:
在 Apache 下,是否可以运行一个单个 CGI 进程来处理并发请求?
使用 ISAPI,您可以拥有一个高效处理并发请求的多线程进程。例如,单个应用程序实例的一个非常明显的好处是它可以包含单个数据缓存;存储在 RAM 中的巨大查找表。
使用 FastCGI(或 CGI),单个 exe 将仅处理单个传入请求;不是并发请求。这意味着您必须运行多个 FastCGI 实例来处理多个并发请求。这也意味着每个 FastCGI 实例都需要一个巨大的查找表的副本;从而引起对内存消耗(由于重复)以及为每个进程加载每个缓存数据副本所浪费的时间的担忧。
[更新]
查看 Apache 在线文档后,我发现我在上面的帖子中询问的功能可以通过编写 Apache 模块来实现。
Apache 模块直接连接到 Apache 服务器,但这个接口太原始(应该如此),无法开发如上所述的 Web 应用程序。
假设某人有使用 C 或 C++ 编写 CGI Web 应用程序的经验。将您的应用程序作为 CGI 或 FastCGI 应用程序运行应该在许多(如果不是大多数)情况下作为单线程应用程序运行良好。
但是,如果您决定将您的 C/C++ Web 应用程序移植为作为模块运行,您将需要构建一个线程池基础架构,以便您的 Web 应用程序逻辑在其下执行。
有谁知道现有的 Apache 模块线程框架,可用于在 C/C++ 中开发 Web 应用程序?
【问题讨论】:
标签: apache-modules