cgi、fastcgi、php-fpm的关系

1、CGI

web server (比如 Nginx) 和 PHP、Python等通信的协议

1、Nginx 接收到php请求;
2、php解析器解析 php.ini, 初始化执行环境;
3、返回结果给浏览器;

2、Fastcgi

高性能的CGI ( 通过减少解析php.ini的次数 , 提高性能)

1、Nginx 接收到php请求;
2、Fastcgi 启动 master, 解析php.ini, 初始化执行环境;
3、启动 worker;
4、返回结果给浏览器;

3、php-cgi

php解析器

4、php-fpm

调度php-cgi

当php.ini被修改后, php-cgi进程的确是没办法平滑重启的。
php-fpm对此的处理机制是新的worker用新的配置,已经存在的worker处理完手上的活就可以歇着了,通过这种机制来平滑过度。

你可能感兴趣的:(cgi、fastcgi、php-fpm的关系)