柒资源

PHP底层之四:php-fpm,php-cgi,fast-cgi,cgi之间的关系

  • 时间:2018-04-01 20:46 编辑:张少平 来源:柒资源 阅读:303
  • 扫一扫,手机访问
摘要:首先CGI是外部应用程序与Web服务器之间的接口标准,是为了保证web server传递过来的数据是标准格式的,方便CGI程序的编写者。php可以作为一个CGI使用,作为CGI时,它将作为独立的进程运行,有请求过来就创建一个进程进行响应。

首先CGI是外部应用程序与Web服务器之间的接口标准,是为了保证web server传递过来的数据是标准格式的,方便CGI程序的编写者。php可以作为一个CGI使用,作为CGI时,它将作为独立的进程运行,有请求过来就创建一个进程进行响应。

FastCGI是语言无关的、可伸缩架构的CGI开放扩展,其主要行为是将CGI解释器进程保持在内存中并因此获得较高的性能。(通俗解释:FastCGI是用来提高CGI性能的),FastCGI是如何对进程进行管理的:Fastcgi会先启一个master,解析配置文件,初始化执行环境,然后再启动多个worker。当请求过来时,master会传递给一个worker,然后立即可以接受下一个请求。这样就避免了重复的劳动,效率自然是高。而且当worker不够用时,master可以根据配置预先启动几个worker等着;当然空闲worker太多时,也会停掉一些,这样就提高了性能,也节约了资源。

PHP-CGI 是PHP的解释器。PHP-CGI只是个CGI程序,他自己本身只能解析请求,返回结果而不能管理进程,所以就出现了一些能够调度PHP-CGI进程的程序,比如说由lighthttpd分离出来的spawn-fcgi。

PHP-FPM是FastCGI进程的管理器,用来管理FastCGI进程的,是一个后台服务,监听端口9000 nginx接受用户的请求,扔给后台的PHP-FPM执行的。修改php.ini之后,PHP-CGI 进程无法平滑重启。PHP-FPM对此的处理机制是新的worker用新的配置,已经存在的worker执行完成后就会释放,通过这种机制来平滑过度。


讲到PHP的底层运行机制不得不解释下PHP进程与线程,请参考文章:PHP的进程与线程详解

  • 全部评论(0)
资讯详情页最新发布上方横幅
最新发布的资讯信息
【技术干货|】火车头采集器7.6破解版出现闪退的解决办法(2018-04-11 13:19)
【技术干货|】PHP中常见的知识点不得不知道的技术点(2018-04-04 16:55)
【技术干货|】PHP工作中案例的总结-简述版(2018-04-04 16:32)
【技术干货|】PHP面试总结(2018-04-04 15:16)
【技术干货|】浅谈MySQL中优化sql语句查询常用的30种方法(2018-04-04 14:29)
【新闻资讯|】强制索权!中国电信这款APP不仅索要70多项权限,还要修改你的通讯录(2018-04-02 19:06)
【技术干货|】什么是死锁和如何解决死锁(2018-04-02 19:00)
【技术干货|】PHP 图片自动过滤和检测(2018-04-02 15:51)
【技术干货|】PHP主流技术之:PHP7的新特性(2018-04-02 10:16)
【技术干货|】关于HTTP协议(2018-04-02 09:59)
网站首页??|?? 关于我们??|?? 广告合作??|?? 联系我们??|?? 隐私条款??|?? 免责声明
CopyRight 2014-2024 柒资源 | 京ICP备17053914号-2
联系客服
平台客服 平台小二 招商入驻 联系客服
13051431117
手机版

扫一扫进手机版
返回顶部