fastcgi 多路复用?

2023-11-23

我正在实现 fastcgi 应用程序,在阅读 fastCGI 规范后,我发现了一个名为“请求多路复用”的功能。它让我想起 Adob​​e RTMP 多路复用协议是专有且封闭的时代。

据我了解,多路复用可以减少创建与 FCGI 客户端的新连接的开销,有效地交织请求块,同时启用连接的“保持活动”模型。后者允许通过单个连接发送多个请求。

第一个问题是我做对了吗?

下一个是 - 经过一番谷歌搜索后,我发现没有实现 FCGI 多路复用的服务器,我首先对“流行”服务器感兴趣,我的意思是 nginx 和 lighttpd。我什至发现了一些关于弃用 FCGI 请求多路复用的讨论。

那么问题来了——有没有服务器支持这个功能呢?


问:多路复用可以减少创建与 FCGI 客户端的新连接的开销,有效地交织请求块

答:确实如此。但 keep-alive 也会减少新的连接。

Q:同时启用“keep-alive”模式进行连接

答:保活不需要多路复用。

问:后者允许通过单个连接发送多个请求

答:keep-alive 允许多个请求相互接连。多路复用允许并行多个请求。

没有广泛使用的支持 FastCGI 的 Web 服务器支持多路复用。但nginx支持FastCGI keep-alive。

FastCGI 多路复用通常不是一个好主意,因为 FastCGI 不支持流量控制。这意味着:如果 FastCGI 后端发送数据,但 http 客户端无法足够快地接收数据,则 Web 服务器必须保存所有这些数据,直到它们可以发送到客户端。

当不使用多路复用时,如果 http 客户端太慢,Web 服务器可能无法从 fastcgi 后端读取数据,从而有效地积压了 fastcgi 后端。使用多路复用时,Web 服务器需要从 fastcgi 后端读取所有数据,即使其中一个客户端接收数据的速度不够快。

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

fastcgi 多路复用? 的相关文章

随机推荐

  • 是否有任何 C# 框架或代码来解析 *blg 性能计数器日志文件?

    任务不是在我的 NET 应用程序中收集性能计数器数据 而是打开已经准备好的二进制日志文件 blg 我知道 MS SQL Profiler NET 应用程序 可以解析二进制日志 据我所知 blg 文件格式似乎是专有的 并且规范并未公开发布 也
  • 为什么我应该关心轻量级标签与带注释的标签?

    去年 我从 Subversion 转向 Git 作为我的日常 VCS 并且仍在努力掌握 Git think 的精髓 最近困扰我的是 轻量级 与带注释和签名的标签 似乎人们普遍认为 在所有实际用途中 带注释的标签都优于轻量级标签 但我找到的解
  • 为 64 位 Windows 10 PC 下载并安装 PyBluez?

    我正在尝试将蓝牙与 python 一起使用 并且遇到了一个模块 pybluez 就在那时 我尝试通过运行 pip install pybluez 来安装它 该包已找到并下载 但在运行 python setup py Egg info 时出现
  • 从文件中提取快速傅立叶变换数据

    我正在构建一个应该在服务器上运行并分析声音文件的工具 我想在 Ruby 中执行此操作 因为我的所有其他工具也是用 Ruby 编写的 但我很难找到实现这一目标的好方法 我发现的很多例子都是在做可视化和图形化的东西 我只需要 FFT 数据 仅此
  • 如何使用 Selenium/PhantomJS 列出加载的资源?

    我想加载一个网页并列出该页面的所有加载资源 javascript images css 我使用此代码来加载页面 from selenium import webdriver driver webdriver PhantomJS driver
  • 如果在 WHERE 子句中用参数(具有相同值)替换常量,为什么查询会急剧减慢?

    我有一个递归查询 如果WHERE子句包含一个常量 但如果我用具有相同值的参数替换该常量 则会变得非常慢 查询 1 使用常量 WITH Hierarchy Id ParentId Data Depth AS SELECT Id ParentI
  • Java Swing:开源甘特图库[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我正在为 Java Swing 寻找一个好的开源甘特图库 我尝试了 JFreeChart 但它无法绘制子任务 我尝试过斯威夫特甘特图也 它可以绘制子
  • 处理 jquery 自动完成中的无结果

    嘿 当用户当前查询没有结果时 我正在尝试返回消息 我知道我需要点击 keyup 事件 但看起来插件正在使用它 这个问题确实已经过时了 无论如何我正在使用新的 jQuery UI 1 8 16 自动完成现在非常不同 http jqueryui
  • 从 .txt 文件读取和显示数据

    如何读取和显示 txt 文件中的数据 BufferedReader in new BufferedReader new FileReader
  • 使用 Ruby 执行命令行时如何避开竖线?

    我在 Windows 中输入以下命令行 dir b ruby ne f chomp File read f each line line print f if line helloworld 此行用于查找当前目录下的所有文件hellowor
  • 了解 ISO 8583 消息日志

    我在以下位置阅读了有关 ISO 8583 消息传递的内容 WIKI and 代码项目 我理解 ISO 8583 消息基本上可以分为 3 部分 MTI 消息类型指示器 1 1 版本 1 2 消息类 1 3 留言功能 1 4 消息来源 Bitm
  • 使用Lua将0秒格式化为00:00:00

    我正在尝试将持续时间 以秒为单位 格式化为时间 并且得到的结果表明我应该在某个地方考虑 一个纪元 我期望os date X 0 生成 00 00 00 但它返回 20 00 00 以及日期值 12 31 69 不过我不需要日历日期 是否有一
  • WCF通信异常

    接收 HTTP 响应时发生错误http 生产 服务 AccountService svc 这可能是由于 服务端点绑定不使用 HTTP 协议 这可以 也可能是由于服务器中止 HTTP 请求上下文 可能是由于服务关闭 查看服务器日志了解更多信息
  • 为什么不能声明嵌套类类型的内联静态数据成员?

    struct sa struct sb int a 123 inline static sb b 上面的代码会产生一个错误 main cpp 25 20 error default member initializer for sa sb
  • 来自 Windows 的低级键盘输入

    哪些 win32 调用可用于从 Windows 服务全局检测按键事件 不仅仅是 1 个窗口 我想在每次按下按键时收到一条消息 您想使用 Win32 Hooks 特别是键盘挂钩 你可以在这里读更多关于它的内容 您想要的挂钩类型是 WH KEY
  • Python从py模块读取所有导入语句的简单方法

    我正在尝试创建一个辅助函数来读取文件并模拟单元测试的所有导入 我必须读取文件与导入 因为我在 python 路径上没有这些东西 示例代码 module py import com stackoverflow question from co
  • cmake:使用多个输出配置

    我正忙于将构建过程从 msbuild 移植到 cmake 以便更好地处理 gcc 工具链 它为我正在做的一些数字工作生成更快的代码 现在 我希望 cmake 生成多个版本的输出 例如一个版本使用 sse2 另一个版本使用 x64 等等 然而
  • 如何使用jackson在java中将json转换为POJO

    我使用的是 spring 3 1 2 我需要将 json 对象解析为 POJO 这是我需要解析的 json Person id 2 Dog dateOfBirth 2012 08 20 00 00 00 price 10 00 我需要将这个
  • 使用 unix 实用程序删除连续的重复行

    这表面上听起来很简单 但实际上要复杂一些 我想使用 unix 实用程序删除连续的重复项 保留原始内容 但是 我还想保留在原始内容之后不立即出现的其他重复内容 例如 如果我们有以下几行 O B O B C D T V O B 我希望输出是 O
  • fastcgi 多路复用?

    我正在实现 fastcgi 应用程序 在阅读 fastCGI 规范后 我发现了一个名为 请求多路复用 的功能 它让我想起 Adob e RTMP 多路复用协议是专有且封闭的时代 据我了解 多路复用可以减少创建与 FCGI 客户端的新连接的开