在过去一年半的时间里,被困在一个MS堆栈架构/开发职位中,阻止了我站在基于开源堆栈的Web服务器最近的演进世界的顶端,超过了我的愿望。 不过,我现在正在构build一个基于开放源代码的应用程序/系统体系结构,可惜我没有时间给每个上面提到的Web服务器进行彻底的testing。 所以我想我会得到来自最知名的系统体系结构的input。
这是一个网站,是一个特定的域名和目标受众的信息资源的资源,以帮助用户不仅可以find信息,而且由于各种原因以各种方式彼此交互。
我select了开源的堆栈,以及比MS堆栈更好的产品(比如WordPress和BlogEngine.NET)。 我觉得Java在这方面比较多,但我并不排除在某些与实际Web应用程序本身无关的领域(如后台进程)使用它的可能性。
我已经得出了在CentOS上使用PHP(使用CodeIgniter框架和APC),MySQL(InnoDB)和Memcached的结论。 我绝对在Nginx上提供静态内容。 然而,上述3款服务器对于性能方面的dynamic内容最适合。 看来LightTPD仍然存在泄漏问题,如果它确实存在的话,Nginx似乎还不够成熟,当然Apache会尽力为每个人做好准备。
我仍然会编译一个select尽可能多的性能调整,如静态链接等。 我相信我可以通过这个过程让Apache匹配另外两个服务dynamic内容,而不是静态服务。 然而在我的研究中,似乎其他人仍然值得考虑。
所以考虑到所有的事情,我很想听听这里的每个人都在这个问题上说什么。 谢谢!
用几粒盐来做这件事,但我的印象是,Apache比其他两台服务器configurationPHP要容易一些。 如果你正确地设置了Apache,也就是不加载不必要的模块,保持进程/线程的数量在控制之下等等,那么我认为你可以把它合理地接近nginx或lighttpd的效率。 我认为很多人对于使用lighttpd或者nginx的Apachedynamic生成页面的改进有一些夸大的看法。
我个人认为nginx比Apache更容易configuration。 看着Apache的configuration往往会让我的头受伤。
至于configuration去,我目前的首选设置是nginx + php-fpm + APC。 我有几个客户端运行这个configuration非常高兴,他们通常已经迁移了基于Apache的设置。 显然,YMMV。 =)
既然你提到了CodeIgniter,你可能想看看Kohana,它原来是CodeIgniter的一个分支,但是在改进的OO概念php5上实现了所有的OO。我并不是说要么更好,最终它是一个问题的个人喜好。