News新闻

业界新闻动态、技术前沿
Who are we?

您的位置:首页      服务器技术      NGINX+PHP(FASTCGI)好,还是NGINX+APACHE+PHP好?

NGINX+PHP(FASTCGI)好,还是NGINX+APACHE+PHP好?

发布日期:2014-04-25 00:00:00 1096

Q:NGINX+PHP(FASTCGI)好,还是NGINX+APACHE+PHP好? 

 第一种是利用CGI让NGINX和PHP进行通信 

第二种是静态NGINX  动态让APACHE里的MOD_PHP模块来实现PHP 

二种都是NGINX在前端80端口,作为一个反向代理服务器。 

这2种哪种效率高呢?
 
 A:如果单台服务器的话,NGINX+APACHE+PHP 纯粹多此一举,多了一次请求转发,效率肯定低,而且现在FPM已经足够稳定。完全没必要。

只有多台服务器集群的话,apache+nginx反代才有意义.NGINX+APACHE+PHP 这种架构存在的原因除了apache出现比较早外,还因为当时FPM不如module模式稳定。

不见得。Nginx在前面实现动静分离,静态内容由Nginx负责,动态请求则交给后面的PHP应用服务器Apache(libphp5.so)处理。Apache专心处理PHP,这不挺好吗? 

Nginx+PHP-FPM相对Nginx+Apache(libphp5.so)来说,PHP-FPM更灵活,在php-fpm.conf里可以配置监听不同端口的多个pool,每个pool又可以自由配置PHP-FPM工人进程数pm.max_children,一个pool里的工人进程繁忙不会影响到另一个pool。在Nginx里可以配置应用的不同部分使用不同的pool,而且一台服务器上可以运行多个版本的PHP-FPM,借助Nginx的upstream功能,PHP-FPM非常容易横向扩展。

新浪微博百度贴吧都在使用Nginx+PHP-FPM的架构,PHP-FPM已经足够稳定。


ab同样并发数压力测试ZF下RPS(请求每秒)对比:

 
 
--- 共有 6 条评论 ---
  • eechen回复 @ZhangKevin2 : PHP-FPM从5.3开始就集成到PHP核心,如果不稳定,你觉得新浪微博和百度贴吧会用吗?倒是PHP官方不推荐在生产环境中使用threaded MPM(worker/event)模式运行Apache2,仍建议使用老式prefork MPM. (2天前)  回复
     
  • ZhangKevin2回复 @eechen : 但是貌似没有APACHE+PHP组合稳定吧 (2天前)  
     
  • eechen回复 @ZhangKevin2 : 你的意思是说Nginx+PHP-FPM存在FastCGI进程间通信,所以Apache2.4+MOD_PHP的性能要比前者好。但Nginx比Apache轻量高效是有目共睹的,处理静态文件和负载均衡都很强。另外PHP-FPM的可以通过php-fpm.conf和php.ini进行配置,拥有更高的可配置性。 (2天前)  
     
  • ZhangKevin2回复 @eechen : apache不是出道2.4了么,听说提升了速度, 另外 NGINX和PHP通信用到了CGI技术,而APACHE和PHP貌似用的是APACHE里一个MOD_PHP模块 好像原理有本质的区别 (2天前)  
     
  • eechen回复 @yak : 差距虽然不大。但Nginx+FPM优于Apache+MOD_PHP是事实。