Nginx + PHP-FPM + APC=为何是绝妙的组合?

jackxiang 2010-5-8 22:34 | |
背景

过去两年多来,我们的网站一直运行Apache+mod_php模块,大多数时候这个组合应付得过来,但随着流量的增加,我们注意到Apache已经显得很吃力了,它开始疯狂地吃内存,CPU也被全部抢占去了,我们需要找到一个更快的方法来解决问题。

Nginx是一个不错的选择,很多指标都超过了Apache,如I/O、CPU、内存和请求数/秒等,如果需要,随时可以从Google搜索相关信息。从我个人的测试结果来看,Nginx和Apache之间的差异是很明显的,不好意思,因为是非正式测试,因此相关数字我就不公布了,这也不是本文的重点。让我更自信的是,我只需要几个步骤就可以让性能远超Apache。

PHP-FPM?

很多人配置Nginx时可能都会选择来自LightTPD项目的spawn-fcgi解析PHP,但使用spawn-fcgi有些问题,因此我打算放弃它另觅别的办法。PHP-FPM是PHP FastCGI Process Manager的缩写,即PHP FastCGI进程管理器,实际上它是PHP的一个补丁,旨在将FastCGI进程管理整合进PHP包中。

注意:即使你坚持使用Apache,也有很多原因跳过mod_php,直接通过FastCGI解析PHP。使用mod_php时,Apache处理载入PHP的每个请求会载入所有的库,这是一个巨大的无畏开销。如果使用FastCGI,PHP的行为更象应用程序服务器,PHP-FPM以及spawn-fcgi按需要载入和杀掉PHP实例,这样做有很多好处,其中很重要的一点就是减少内存开销。

作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:https://jackxiang.com/post/3041/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!

评论列表
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]