mod_fcgid:多线程 FastCGI 现在还是计划中的未来?

2024-04-07

迄今为止的事实

根据 ”mod_fcgi 不是 mod_fastcgi 的替代品 http://www.apachelounge.com/viewtopic.php?t=4385” and “mod_fcgid 和多线程 FastCGI 应用程序的问题 http://mail-archives.apache.org/mod_mbox/httpd-users/201008.mbox/%3C4C7C286B.6020703@codexterous.com%3E”, mod_fcgid,并不是为了期望 FastCGI 服务器能够同时处理多个请求,即不是为了期望 FastCGI 服务器是多线程的。

前者说:

它们都支持已发布的“FastCGI”协议,但是 他们控制 FastCGI 服务器的方式有很大不同。 mod_fcgid 快速消除 FastCGI 服务器并启动 新的。

后者说:

看来 mod_fcgid 不知道我的服务器 是多线程的,能够处理多个请求。

这只是其中的两句话,其他地方还有一些。

连续发行

线程不仅可以节省 CPU 和内存,避免创建新进程的开销(众所周知,创建线程比创建进程更轻),而且可以通过硬件或操作系统性能来减轻开销;这也是一个逻辑问题,不太容易缓解:线程属于同一个进程,这不仅是性能,而且是逻辑,例如。进程无法共享线程可以共享的内容,因为进程是隔离运行的(模 IPC,但这并不相同)。

至少出于这个逻辑原因,可能会提出多线程 FastCGI 服务器的问题。当 FastCGI 服务器被设计为多线程服务器时,它可能拥有一个对所有请求处理程序来说都是全局的上下文(在进程之间共享可能会很大且成本高昂)。为每个并发请求分叉一个新进程不再能够确保公共上下文。

问题

上述两段引文是否仍然属实(一个是 2011 年,另一个是 2010 年)?我在网上搜索了该主题,但找不到任何相关内容。如果它仍然是真的,那么它会永远是真的吗?或者是否有一个预期的计划?mod_fcgid,了解多线程 FastCGI 服务器并接受它们可能被设计为处理多个并发请求?


我无法回答您关于 mod_fcgid 的确切问题,但 Apache 已经继续前进,Apache 2.4 中现在的首选方法是使用 mod_proxy_fcgi,http://httpd.apache.org/docs/trunk/mod/mod_proxy_fcgi.html http://httpd.apache.org/docs/trunk/mod/mod_proxy_fcgi.html.

它确实处理多个并发请求。通常,您可以将请求传递给 php-fpm 处理程序。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

mod_fcgid:多线程 FastCGI 现在还是计划中的未来? 的相关文章

  • Objective-C中如何使用后台线程?

    我试图在按下按钮时运行 while 循环 但无法按下按钮 因为 while 循环会阻塞 UI 是否有一个后台线程 我可以在其中运行 while 循环并推送UIButton 就个人而言 我会在 UI 顶部运行 HUD 活动指示器 然后在后台运
  • onchange 使用 radioChoice 获取当前值

    我尝试使用 radioChoice onChange 从无线电表单中获取选定的值 但似乎无法真正找到解决方案 onEvent 函数被调用 但从这里我不太确定如何获取该值 Code RadioChoice
  • Django + WSGI:刷新问题?

    我正在开发一个 Django 网站 我在实时服务器上进行所有更改 只是因为这样更容易 问题是 它似乎时不时地喜欢缓存我正在处理的 py 文件之一 有时 如果我频繁点击刷新 它会在页面的旧版本和新版本之间来回切换 我的设置或多或少类似于 Dj
  • 使用 .Net HttpListener 进行多线程

    我有一个听众 listener new HttpListener listener Prefixes Add http 8077 listener Start listenerThread new Thread HandleRequests
  • 通过不同的线程使用多个 ORB(多线程多 Orb 客户端应用程序) - 如何?

    This question is related to Is it possible to have several ORB objects in the same process https stackoverflow com quest
  • 我怎样才能发现并生存被“Slashdotted”?

    在异常高的流量高峰中生存的好方法是什么 我的想法是 在某些触发点上 我的网站应该暂时切换到 低带宽 模式 切换到基本 HTML 页面 最少的图形 禁用可能会给数据库带来不必要负载的小部件 等等 我的想法是 监控CPU使用率 监控带宽 监控请
  • Python:threading.timer不尊重间隔

    这是后续另一个问题 https stackoverflow com questions 32286049 python accept input while waiting 我现在有了一个解决方案 但由于不相关的原因 实现似乎没有正常运行
  • 当我们调用 Thread.start() 时真正发生了什么[重复]

    这个问题在这里已经有答案了 正如问题标题所说 我想知道当我们调用 Thread start 时内部发生了什么 以及 start 方法何时返回以及 main 恢复执行 内部会触发什么内容 例如向调度程序注册线程等 另外为什么要使用执行者 你打
  • MySQL 与 PHP 的连接无法正常工作

    这是我的情况 我正在尝试使用 Apache 服务器上的 PHP 文件连接到 MySQL 数据库 现在 当我从终端运行 PHP 时 我的 PHP 可以连接到 MySQL 数据库 使用 php f file php 但是当我从网页执行它时 它只
  • 类和互斥体

    假设我有一个类代表一些名为 foo 的数据结构 class foo public foo attr01 0 void f attr01 5 private int attr01 class fooSingleThreadUserClass
  • Android SurfaceView 使用线程绘制画布

    我正在尝试使用线程在画布上绘图来创建一个简单的游戏引擎 但我遇到了一些无法解释的奇怪问题 这个 游戏 的目的是每秒在画布上画一个圆圈 这是可行的 但不是我想要的工作方式 似乎应用程序正在两个画布之间切换 并向每个画布添加一个圆圈 这样您就可
  • 在 Python 中共享多处理内存的更好方法?

    我已经解决这个问题一周了 它变得非常令人沮丧 因为每次我实现一个更简单但相似规模的示例来说明我需要做的事情时 事实证明多重处理都会把它搞砸 它处理共享内存的方式让我感到困惑 因为它非常有限 很快就会变得无用 所以我的问题的基本描述是 我需要
  • 如何在 C++ 中急于提交分配的内存?

    总体情况 带宽 CPU 使用率和 GPU 使用率都极其密集的应用程序需要每秒从一个 GPU 向另一个 GPU 传输约 10 15GB 的数据 它使用 DX11 API 来访问 GPU 因此上传到 GPU 只能在每次上传都需要映射的缓冲区中进
  • Angular2通用部署到apache远程服务器

    我在将 Web 应用程序部署到 Apache 远程服务器时遇到问题 我已经通过以下步骤部署了一个使用 RESTful API 服务 用 PHP 编写 托管在 public html api 的标准 Angular2 Web 应用程序 在项目
  • Flask/Apache 提交按钮用于文件上传

    我有一个在 apache 后面运行的 Flask 应用程序 在我的 index html 页面上有一个文件上传按钮和一个提交按钮 如下所示
  • 使用 Matplotlib、PyQt 和 Threading 进行实时绘图导致 python 崩溃

    我一直在努力研究我的 Python 应用程序 但找不到任何答案 我有 PyQT GUI 应用程序 它使用 Matplotlib 小部件 GUI 启动一个新线程来处理 mpl 小部件的绘图 恐怕我现在通过从另一个线程访问 matplotlib
  • 如何从 Android 调用 RESTful 方法?

    我尝试了两种不同的方法来从 Android 调用简单的 REST 方法 所述 REST 方法 适用于其他客户端 仅返回一个 int val 例如 17 以下两次尝试都是基于我在网上找到的代码 有一种是这样的 公共无效onFetchBtnCl
  • Apache 从子域重写为 www 但保留所有永久链接

    我已经研究了大约 2 个小时 虽然大多数主题都很相似 但没有一个解释如何做我想做的事情 我正在将一个结构为 blog domain com 的博客移至 www domain com blog 当我重定向时 我需要保留博客文章的永久链接 所以
  • 强制 Apache HTTPD 以 32 位运行

    我通过从二进制文件 以及 ppc 部分 中剥离 32 位架构 以 64 位模式运行 Apache HTTPD 我这样做是为了使其与 python 和 mysql 更加兼容 然而 我有另一台机器需要它以 32 位模式运行 它仍然保留所有四种原
  • apache_request_headers() 与 $_SERVER

    据我所知 apache request headers 提供与以下相同的信息 SERVER 但按键略有不同 为什么有人应该使用apache request headers 而不仅仅是从那里获取这些信息 SERVER 我在 Centos 上使

随机推荐