我查看了一个非常古老的 Apache/PHP 演示文稿。演示文稿已经过时了,但大多数内容都非常好。
在其中一张幻灯片上他们提到lingerd
——“适当关闭连接等等”。
由于原始lingerd
网站似乎不再存在,我有以下问题:
lingerd
用于解决什么问题?它是怎么做到的?是 Apache 模块还是其他什么?
取决于前两个答案 - 这个问题在 Linux 上是否存在以及现在谁在处理它 - 内核还是 Apache 网络服务器?
答案1
原来的 lingerd 网站似乎已不存在,
您可以在以下位置找到 lingerd 网站回溯机器
lingerd 用来解决什么问题?是 Apache 模块还是其他什么?
Lingerd 是一个守护进程(服务),旨在接管从 Apache 等 http 服务器正确关闭网络连接的工作。
由于 TCP/IP 和 HTTP 工作方式的一些技术复杂性,每个 Apache 进程目前在页面生成和发送后会浪费大量时间“停留”在客户端连接上。Lingerd 接管了这项工作,让 Apache 进程可以立即自由地处理新连接。因此,Lingerd 可以使用更少的 Apache 进程来处理相同的负载。这意味着服务器负载减少。
Lingerd 在生成动态页面的 Apache 网络服务器中特别有用(例如与 mod_perl、mod_php 或 Java/Jakarta/Tomcat 结合使用)。
更重要的是,lingerd 只有在关闭 HTTP Keep-Alives 的情况下才能有效地工作;因为 keep-alives 对图像很有用,所以推荐的 lingerd 设置是为动态页面配备一个 Apache/mod_whatever/lingerd 服务器,并为图像配备一个普通的 Apache(或 thttpd 或 boa)。