浅谈cgi、fastcgi及php-fpm的原理概念
cgi
cgi是通用网关接口定义。当web server收到/index.php这个请求后,会启动对应的CGI程序,这里就是PHP的解析器。接下来PHP解析器会解析php.ini文件,初始化执行环境,然后处理请求,再以规定CGI规定的格式返回处理后的结果,退出进程。web server再把结果返回给浏览器。
fastcgi
fastcgi是一个协议。实现管理进程,提高cgi性能,标准cgi对每个请求都会解析php.ini,初始化环境,浪费时间;fastcgi启动master进程,解析配置文件,初始化环境,然后启动多个worker进程;请求过来时,master传递给worker进行处理;worker不够用会预先多起几个,worker空闲较多会停掉几个。
php-fpm
是一个实现了fastcgi协议的程序。修改php.ini之后,php-cgi进程无法平滑重启。php-fpm对此的处理机制是新的worker用新的配置,已经存在的worker处理完手上的活就可以歇着了,通过这种机制来平滑过度。
相关推荐
Skyline 2020-06-25
jkzyx 2020-04-25
aaLiweipeng 2020-04-25
gongjiang 2019-09-18
qiyuandu 2011-06-27
WFMoonlight 2020-08-17
zhaowj00 2020-07-30
有梦就能实现 2020-06-26
dajiangqingzhou 2020-05-07
olyqcool 2020-05-10
aaLiweipeng 2020-04-25
igogo00 2020-03-04
Skyline 2020-03-01
zhaowj00 2020-02-19
amberom 2020-02-18
JF0 2020-02-02
技术渣 2013-05-13