首页 » PHP教程 » phpfpmpdo技巧_详解CGIFastCGIphpfpm三者差异与联系

phpfpmpdo技巧_详解CGIFastCGIphpfpm三者差异与联系

duote123 2024-11-05 0

扫一扫用手机浏览

文章目录 [+]

web server处理静态文件流程图

当web server收到动态php要求呢?

phpfpmpdo技巧_详解CGIFastCGIphpfpm三者差异与联系

比如当Web Server收到 index.php 这个要求后,会启动对应的 CGI 程序,这里便是PHP的解析器。
接下来PHP解析器会解析php.ini文件,初始化实行环境,然后处理要求,再以规定CGI规定的格式返回处理后的结果,退出进程,Web server再把结果返回给浏览器。

phpfpmpdo技巧_详解CGIFastCGIphpfpm三者差异与联系
(图片来自网络侵删)

web server处理php程序完全流程

CGI

是 Web Server (Apache、Nginx、IIS、Lighttpd、Tomcat等做事器)与 Web Application (PHP、Java、Asp.net等运用程序)之间数据交流的一种协议。

FastCGI

同 CGI,是一种通信协议,但比 CGI 在效率上做了一些优化。

FastCGI与CGI的差异

CGI针对每个http要求都是fork一个新进程来进行处理,

处理过程包括解析php.ini文件,初始化实行环境等,

然后这个进程会把处理完的数据返回给web做事器,

末了web做事器把内容发送给用户,

刚才fork的进程也随之退出。

如果下次用户还要求动态资源,那么web做事器又再次fork一个新进程,周而复始的进行。

Fastcgi则会先fork一个master,

解析php.ini配置文件,

初始化实行环境,

然后再fork多个worker。

当要求过来时,master会通报给一个worker,

然后立即可以接管下一个要求。

当worker不足用时,master可以根据配置预先启动几个worker等着;

当然空闲worker太多时,也会停掉一些,这样就提高了性能,也节约了资源。

php-fpm

那PHP-FPM又是什么呢?它是一个实现了Fastcgi协议的程序,用来管理Fastcgi起的进程的,即能够调度php-cgi进程的程序。

php7进阶到架构师干系阅读

https://www.kancloud.cn/gofor/gofor

末了,欢迎大家留言补充,谈论~~~
标签:

相关文章