对于开发,我使用本地 LAMP 堆栈,对于生产,我使用MediaTemple 的 Django Container(我喜欢 BTW)。MT 的容器使用 lighthttpd。老实说,我从来没有任何其他经验。我一直使用 Apache。我一直在阅读:
以下是问题:
- 一个比另一个有什么优势?
- 在我的开发设置中使用 lighthttpd 对我有好处吗?
- 两者都用有什么用?Linux.com 文章讨论了在 Apache 中使用lighttpd。
两者的好处:Apache 更强大且可扩展(如果您不需要这种功能,则无用,但无论如何......)并且 lighttpd 在静态内容上更快。这个想法是将您的站点拆分为静态内容(css、js、图像等)和流经 Apache 的动态代码。
我并不是说您不能单独使用 lighttpd 做很多事情。你可以,人们也可以。
如果您只在生产服务器上使用 lighttpd,我会认真考虑将其镜像到您的开发和登台服务器上,以便您在部署之前确切地知道会发生什么。
对于具有来自不同 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?出于遗留原因。
答案取决于您的项目目标。如果它将是一个正常运行时间至关重要且负载很高的大型站点,请使用 lighttpd;它的规模惊人。唯一的缺点是您最初必须更多地动手。大多数主机不支持这一点,知道你在用 lighttpd 做什么真的很值得。
如果它是你妈妈的网站,每月会有几千名访问者,那么 apache 会更好。她将能够更轻松地转移到新的主机,并且更容易找到支持。