0

我在一个网站上读到,在 Apache 前面安装 Lighttpd 的另一个好处是子进程数量较少。Lighttpd 将处理保持活动和客户端请求,而 Apache 的子进程可以更快地为动态页面提供服务,因为 Lighttpd 和 Apache 之间的通信延迟非常低。我试图找到链接,但我很难。

鉴于我已经有一个专门的 Lighttpd 服务器用于我的静态内容(img、vid、css、js、html 等)和另一个专用的 Apache 服务器用于我的动态页面(php),如果它真的实现了,我想实现这个技术有一些性能提升。

1) 是否有人出于与上述相同的目的将 Lighttpd 放在 Apache 前面?
2)这真的有性能提升吗?多少钱?
3) Lighttpd 处理对 Apache 的请求的开销怎么样,真的值得吗?

谢谢!

4

2 回答 2

0

Lighttpd 非常适合静态 CDN,再加上 Apache 用于数据库交互脚本。

于 2010-08-12T10:06:41.440 回答
0

总的来说,我已经看到这种技术非常好,但是,我会使用另一个 Apache 实例而不是 lighthttpd(不要不必要地增加盒子上的软件数量)。

您获得的收益主要与记忆有关。如果您使用非常“胖”的 Apache,例如在 prefork 中使用 mod_perl 或 PHP 或其他一些内存密集型模块,那么您必须将 MaxClients 设置得非常低以避免炸毁 RAM。

另一方面,MaxClients 可以通过 keep-alive 请求、SSL 握手、图像下载和其他琐碎的活动来访问,这些活动会不必要地消耗大量的 ram。

前面的小型“瘦”服务器(可以是另一个没有 mod_perl、PHP 等的 Apache 实例)可以处理 keepalive、图像、SSL、重定向等,然后让主实例处理所有繁重的东西。

此外,您可以保护您的主实例免受那些发送请求非常缓慢或根本不发送请求的滥用客户端的影响(我在非滥用客户端使用 XMLHttpRequest 在旧的损坏版本的 IE 上看到了这一点)。

这是一个很好的方法,如果你的服务器内存不足,因为它们有太多的胖 apache,它们把所有的时间都花在无所事事上,这肯定会有所帮助。

于 2010-08-13T05:50:20.553 回答