为什么不使用nginx+php(fastcgi)作为生产环境?

jackxiang 2012-6-25 20:54 | |
    前言,近来fastCGI流行,也有人提出了相反的看法,并作出了原因解释,觉得有道理,So。。。
    php群里的兄弟:
    nginx这么厉害吗?答:我测试,10000次,10次并发 机器,就是不死 65%cpu了,还不死。。。nginx防盗链牛逼可以根据参数加密。
    php-fpm确实,听蛋疼的 5个进程,每个占12% 我操,cpu干不了别的了,php-fpm是相当的不行 cpu占用太厉害.用apache啊.apache有些特性不行。。。
    Nginx 502:
  fast_cgi设置
   fastcgi_connect_timeout 30;
    fastcgi_send_timeout 30;
    fastcgi_read_timeout 30;
    fastcgi_buffer_size 64k;
    fastcgi_buffers 4 64k;
    fastcgi_busy_buffers_size 128k;
    fastcgi_temp_file_write_size 128k;
    Php-fpm设置
   <value name="listen_address"> /dev/shm/php-fpm.sock </value>
   <value name="max_children">128</value>
   <value name="request_terminate_timeout">10s</value>
   <value name="request_slowlog_timeout">5s</value>
   <value name="slowlog">/path/to/slow.log</value>
   <value name="rlimit_files">65535</value>

    
    php(fastcgi)不够稳定,经常出现502错误,生成相对复杂的页面没有优势,反而会使php-cgi进程变为僵尸进程.
    安全性,多用户多站点权限问题.php(fastcgi)在应对多用户多站点往往捉襟见肘,不易于实施.
    整合其他开发语言,apache表现得游刃有余.资源利用恰到好处.
为什么采用nginx做前端,apache作为后端的方案?nginx在处理静态内容上较apache是几倍或几十倍的差异,因而放在前面过滤静态内容是最为恰当的.同时nginx也是一个负载均衡器,低资源消耗,高性能转发是它的特点.经过nginx在前面的过滤,后端的apache需要处理的内容相对就比较少了.只需负责处理动态内容就可以了.在性能与稳定性的权衡下,使用nginx+apache搭配会让它们在各自擅长的领域展现自身的价值.
http://www.vpser.net/build/nginx-apache-guide.html

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


最后编辑: jackxiang 编辑于2012-6-25 21:01
评论列表
发表评论

昵称

网址

电邮

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