12

对于开发,我使用本地 LAMP 堆栈,对于生产,我使用MediaTemple 的 Django Container(我喜欢 BTW)。MT 的容器使用 lighthttpd。老实说,我从来没有任何其他经验。我一直使用 Apache。我一直在阅读:

以下是问题:

  • 一个比另一个有什么优势?
  • 在我的开发设置中使用 lighthttpd 对我有好处
  • 两者都用有什么用?Linux.com 文章讨论了在 Apache 中使用lighttpd
4

5 回答 5

4

两者的好处:Apache 更强大且可扩展(如果您不需要这种功能,则无用,但无论如何......)并且 lighttpd 在静态内容上更快。这个想法是将您的站点拆分为静态内容(css、js、图像等)和流经 Apache 的动态代码。

我并不是说您不能单独使用 lighttpd 做很多事情。你可以,人们也可以。

如果您只在生产服务器上使用 lighttpd,我会认真考虑将其镜像到您的开发和登台服务器上,以便您在部署之前确切地知道会发生什么。

于 2008-10-05T15:55:05.043 回答
4

对于具有来自不同 IP 地址的 n 个 http 请求的纯静态网页(.gif、.css 等): 1. Apache:运行 n 个进程(内存中有 mod_perl、mod_php) 2. lighttpd:运行 1 个进程和 1 个线程(您可以在启动之前分配 m 个线程)

对于具有来自不同 IP 地址的 n 个 http 请求的纯动态网页(.php、.pl): 1. Apache:运行 n 个进程(内存中有 mod_perl、mod_php) 2. lighttpd:由于异步 I/O 运行 1 个 lighttpd 进程, 并为每种脚本语言运行 m 个 fast-cgi 进程。

Lighttpd 消耗的内存要少得多。在被谷歌收购之前,YouTube 曾经是 lighttpd 的大用户。转到其主页以获取更多信息。

PS 在我以前的公司,我们将两者都与负载均衡器一起使用,以根据其 url 后缀分配 http 流量。为什么不完全lighttpd?出于遗留原因。

于 2008-10-09T01:10:50.163 回答
3

Web 服务器和 Django 之间的接口方式可能比 Web 服务器软件的选择对性能的影响更大。例如,已知 mod_python 占用大量内存。

此问题及其答案还讨论了其他 Web 服务器选项。

我不会担心与客户端软件的兼容性问题(请参阅MarkR 的评论)。在使用 lighttpd 和 FastCGI 为 Django 提供服务时,我没有遇到这样的问题。我希望看到服务器和客户端软件的多样化生态系统。拥有一个好的标准比来自单一供应商的事实上的产品要好。

于 2008-10-06T08:08:48.463 回答
0

答案取决于您的项目目标。如果它将是一个正常运行时间至关重要且负载很高的大型站点,请使用 lighttpd;它的规模惊人。唯一的缺点是您最初必须更多地动手。大多数主机不支持这一点,知道你在用 lighttpd 做什么真的很值得。

如果它是你妈妈的网站,每月会有几千名访问者,那么 apache 会更好。她将能够更轻松地转移到新的主机,并且更容易找到支持。

于 2008-10-06T04:45:25.940 回答
-5

使用标准的 Web 服务器。50% 的网站(Netcraft)使用 Apache,因此,如果您使用 Apache,人们的网络浏览器、蜘蛛、代理等几乎可以保证与您的网站(无论如何是其网络服务器)一起工作。

Lighthttpd 被 1.5% 的网站 ( Netcraft ) 使用,因此人们用它来测试他们的应用程序的可能性要小得多。

任何性能差异在生产中都可能无关紧要;在您可能在生产中部署的最慢硬件上,Apache 服务器可能会以比您更高的带宽来处理静态请求。

于 2008-10-05T16:03:39.583 回答