对于开发,我使用本地LAMP堆栈,用于生产我正在使用MediaTemple's Django Container(我喜欢BTW)。 MT的容器使用lighthttpd。老实说,我从来没有任何其他经验。我一直使用Apache。我一直在读书:
以下是问题:
答案 0 :(得分:4)
两者的好处:Apache更强大和可扩展(如果你不需要那种功能,则无用,但无论如何......)和lighttpd在静态内容上更快。我们的想法是将您的网站分成静态内容(css,js,图像等)和流经Apache的动态代码。
我并不是说你自己也不能用lighttpd做很多事情。你可以和人们一起做。
如果您在生产服务器上专门使用lighttpd,我会认真考虑在开发和登台服务器上镜像,以便在部署之前准确了解预期结果。
答案 1 :(得分: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消耗的内存要少得多。在Google被Google收购之前,YouTube曾经是lighttpd的大用户。请访问其主页以获取更多信息。
P.S。在我以前的公司,我们使用负载均衡器根据其URL后缀分配http流量。为什么不完全lighttpd?由于遗留原因。
答案 2 :(得分:3)
Web服务器和Django之间的接口方式可能比选择Web服务器软件对性能产生更大的影响。例如,已知mod_python在RAM上很重。
This question及其答案也讨论了其他网络服务器选项。
我不会担心客户端软件的兼容性问题(请参阅MarkR's comment)。使用lighttpd和FastCGI服务Django时我没有遇到过这样的问题。我希望看到服务器和客户端软件的多样化生态系统。拥有良好的标准比单个供应商的事实上的产品更好。
答案 3 :(得分:0)
答案取决于您的项目目标。如果它是一个大规模的站点,正常运行时间是关键的,负载是高配置lighttpd;它惊人地扩展。唯一的缺点是你最初必须更多地动手。大多数主机都不会支持这一点,知道你在使用lighttpd做什么真的很值得。
如果这是一个适合您母亲的网站,那么每个月会有几千名访客,apache会更好地工作。她将能够更容易地移动到新主机并且更容易找到支持。
答案 4 :(得分:-5)