查看文章 |
mod_php or fastcgi
2007-12-09 20:04
用php肯定少了不这个问题的选择,cgi自然就不必说了,但是mod_php和fastcgi的争论确还是比较多的。 找了一些资料,晾在这,可供参考。 首先,性能应该是大家最关心的问题了,除了mod_php和fastcgi 的 benchmark,还有一些服务器差别的测试,如apache vs lighthttpd 1 mod_php, LightTPD, FastCGI - What's fastest? 这个bechmark的结果是 Apache(prefork)+Fastcgi+php的性能是最好的。超过了apache+mod_php,甚至也超过了lightty+fastcgi+php。当然,这个结果得出值相差都很小。另外,以上说的几个结果都使用了APC加速,使用APC后性能提高1倍以上。 2 php4-mod-vs-cgi 这个bechmark是在php4的环境下完成的。其summary.txt的内容如下。 Summary of the benchmark上面的结果我觉得需要关注的是无cache的情况,因为使用mod_php或fastcgi主要还是用来生成动态页面。前面的cache有更好的工具来实现,如squid。所以,这个结果也是fastcgi胜出,相差也不大。 3 http://buytaert.net/drupal-performance?page=1 这个文章的结果和上面两个刚好相反。使用fastcgi代替mod_php后,"When switching from mod_php to FastCGI we observe a 63% slowdown for anonymous visitors, and a 18% slowdown for authenticated visitors."以下是图表另外,benchmark中也做了和lightty的比较,如下图: 这个文章的结论是Apache+mod_php性能好于Apache+fastcgi。另外,Apache+mod_php略好于lightty+fastcgi。 4 最后看看 fastcgi官方自己怎么说的吧 Of course, the answer is that it depends upon the application. A more complete answer is that FastCGI often wins by a significant margin, and seldom loses by very much. 5 结论是,还是根据自己的应用测一下吧.... 最后,个人观点 如果mod_php和fastcgi的性能相差不是很大的话,还是倾向于fastcgi的,这种方式毕竟更灵活、安全和简单。 1 使用fastcgi,你的web server 可以比较简单的切换,可以测试不同的服务器,Apache,lightty,ngix 等等,不需要有代码的修改 2 如果想换脚本的实现,如不用php,而是改成perl,python之类的,web服务器也不需要任何的改动 3 web server和fastcgi可以用不同的帐号运行,带来了一定的安全隔离 4 只在Apache中编个mod_fastcgi可以说是简单多了,把mod_php编进apache时,出问题时很难定位是php的问题还是apache的问题,我就见过这样的core,函数调用几十层,一点头绪都没有 --EnD-- |
最近读者:

