Apache或lighttpd

12

在开发中,我使用本地的LAMP堆栈,而在生产环境中,我正在使用MediaTemple的Django容器(我非常喜欢)。MT的容器使用lighthttpd。老实说,我从未有过任何其他经验。我一直在使用Apache。我阅读了一些资料:

以下是我的问题:

  • 它们各有哪些优势?
  • 在我的开发环境中使用lighthttpd会有益吗?
  • 同时使用两者的好处是什么?Linux.com的文章谈到了如何将lighttpd与Apache一起使用。

好问题,这也困扰了我很久!据我所知,lighttpd更适合提供静态文件,但是你说MT的设置使用它,我也知道很多使用它的PHP网站。希望有人能解释一下! - roryf
5个回答

4
Apache和lighttpd的优点:Apache更加强大和可扩展(如果你不需要这种功能,那么它就没有用了,但是...),而lighttpd在处理静态内容时更快。这个想法是将您的站点分成静态内容(css、js、图像等)和流经Apache的动态代码。
我并不是说您不能仅使用lighttpd完成很多工作。您可以这样做,而且人们确实这样做。
如果您在生产服务器上仅使用lighttpd,则应认真考虑在开发和演示服务器上进行镜像操作,以便在部署之前知道可以期望什么。

好的,我想当然地认为“输出”可能会有差异。 - imjoevasquez

4
对于仅包含静态网页(.gif, .css等)且有n个来自不同ip地址的http请求: 1. Apache: 运行n个进程 (带有mod_perl, mod_php在内存中) 2. lighttpd: 运行1个进程和1个线程(您可以在启动之前分配m个线程)
对于仅包含动态网页(.php, .pl)且有n个来自不同ip地址的http请求: 1. Apache: 运行n个进程 (带有mod_perl, mod_php在内存中) 2. lighttpd: 由于异步I/O而运行1个lighttpd进程,并为每种脚本语言运行m个fast-cgi进程。
Lighttpd消耗的内存要少得多。YouTube曾经是lighttpd的大客户,直到被Google收购。请访问其主页了解更多信息。
附:在我之前的公司,我们使用负载均衡器将http流量分配到其url后缀。为什么不完全使用lighttpd?出于传统原因。

3
与 Web 服务器软件的选择相比,你与 Django 之间的接口方式可能对性能的影响更大。例如,已知 mod_python 对 RAM 的使用较多。此外,这个问题及其答案还讨论了其他 Web 服务器选项。我不会担心与客户端软件的兼容性问题(参见 MarkR 的评论)。我使用 lighttpd 和 FastCGI 提供 Django 时没有遇到这样的问题。我希望看到一个多样化的服务器和客户端软件生态系统。拥有良好的标准比使用来自单一供应商的 事实上 产品更好。

0

答案取决于您的项目目标。如果它将成为一个大规模的网站,其中正常运行时间至关重要且负载很高,请选择lighttpd;它的扩展能力非常惊人。唯一的缺点是您最初必须更加亲自动手。大多数主机不支持此功能,因此真正了解lighttpd的操作非常重要。

如果这是一个每月会有几千名访客的网站,那么apache会更好。她将能够更轻松地转移到新的主机,并且易于找到支持。


-5

使用标准的Web服务器。Apache被50%的网站使用(Netcraft),因此,如果您使用Apache,人们的Web浏览器、蜘蛛、代理等几乎可以保证与您的站点(至少是其Web服务器)兼容。

Lighthttpd仅被1.5%的网站使用(Netcraft),因此人们不太可能使用它来测试他们的应用程序。

在生产中,任何性能差异可能都不重要; Apache服务器可以在比您部署在生产中的最慢硬件上更高的带宽下提供静态请求。


2
是的,但那1.5%的网站包括YouTube,所以我认为Lighttpd相当可靠。 - Justin Voss
这是一个毫无意义的比较。所有的Web服务器都以相同的方式提供页面,它们的内部工作对终端用户来说是透明的。当服务器遵循标准时(这两个都是),不需要进行任何服务器浏览器调整。 - WhyNotHugo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接