PHP 中的 CGI、FastCGI、PHP-CGI、PHP-FPM 之间的关系整理

8 篇文章 0 订阅
6 篇文章 0 订阅

CGI(Common Gateway Interface)通用网关接口

一个HTTP POST请求,从web浏览器,发送到web服务器(nginx),请求携带的URL paths、HTTP header、POST等数据,通过CGI转化为进程的环境变量,好让PHP取到。
缺点:每个请求一个新进程,进程间通信地址空间无法共享,限制了数据库连接、内存缓存等资源的重用。


 
 
 

FastCGI(Fast Common Gateway Interfac)快速通用网关接口

独立常驻进程,使用了master/worker模式,可专门处理web服务器转发过来的动态请求直接返回,解放了Web服务器。
master作为进程管理器,初始化环境、解析php.ini配置文件。由于只需要启动一次,数据库连接可以长连接了。
worker作为CGI解释进程,处理实际的HTTP请求,可以根据并发量动态的增减worker数量。

 
 


PHP-FPM(PHP-FastCGI Process Manager)PHP专门的快速通用网关接口进程管理

先说下PHP-CGI,它是官方按FastCGI的标准协议实现的,不过功能不完善,性能太差(没有进程管理等),一个叫Andrei Nigmatulin开发的第三方的PHP-FPM吊打了PHP-CGI,于是5.4之前他俩合作了,5.4之后新增内核补丁加入了PHP-FPM,顺便加了自己的解释器。
 
他俩的关系php-cgi
php-fpm
<5.4版本解释器进程管理
>=5.4版本解释器进程管理+解释器

 

 
 
 



PHP-FPM主要是把FastCGI进程管理器整合到PHP中,其中还对PHP增加一些:平滑更新php.ini、慢日志、fastcgi_finish_request(web页面在服务器挂起)等特性。

 
 
参考文章:
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值