当前位置 : 主页 > 网络编程 > PHP >

cgi、fast-cgi、php-fpm的关系(附流程图)

来源:互联网 收集:自由互联 发布时间:2022-11-14
php入门到就业线上直播课:进入学习 Apipost = Postman + Swagger + Mock + Jmeter 超好用的API调试工具:点击使用 首先我们来讲 CGI cgi 是一个协议,跟进程无关,比如说 web server (nginx) 接收到一个

php入门到就业线上直播课:进入学习
Apipost = Postman + Swagger + Mock + Jmeter 超好用的API调试工具:点击使用

首先我们来讲 CGI

  • cgi 是一个协议,跟进程无关,比如说 web server (nginx) 接收到一个 php 的网络请求,此时 nginx 需要根据配置文件,去找 php 的解析器,经过简单处理,将请求的一些信息交给 php 解析器,此时就规定了要传那些协议,还有以什么样的格式传输,这个标准就叫做 cgi 协议

  • php 解释是实现了这个协议的 cgi 程序,nginx 将这些内容交给 php 解释器后,读取 php.ini 等初始化环境,然后处理数据,最终转换成符合这个协议的数据流交给 nginx, 最终返回给浏览器【推荐:PHP视频教程】

fast-cgi 管理 cgi 程序

  • fast-cgi 是一个常驻进程的程序,与 cgi 为每个 web 请求建立一个进程不同的是,fast-cgi 在 web server 启动的时候会同时启动多个 cgi 程序,这样当进来动态页面请求的时候,就可以将数据流交由 fast-cgi 进程管理器,这样做的好处就是 web server 可以处理更多的请求,并且解析 php.ini 这些工作只进行一次,提高响应速度,

图示如下

d3fba5bad1a90f812542a425ecbfb08.jpg

php-fpm 管理 cgi 程序

  • 首先 php-fpm 是将 fast-cgi 整合之后加入一些新功能的产物,由于 web server 提供的 fast-cgi 程序进行管理 php-cgi 时有着诸多的缺点,例如修改了 php.ini 的配置文件,必须要重启 web server 才能使其生效(php-cgi 不能平滑的启动,杀死 php-cgi 时 php 就不能正常的工作),当使用 php-fpm 时就能解决这些问题

此时的流程图如下

d53434c7264b2da0098074b2cc636be.jpg

以上就是cgi、fast-cgi、php-fpm的关系(附流程图)的详细内容,更多请关注自由互联其它相关文章!

上一篇:PHP实现非法词汇过滤(算法分析)
下一篇:没有了
网友评论