cgi、fastcgi和php-fpm三者的关系

最近学习nginx服务器的搭建与配置时,偶然看到关于fastcgi这个名词,经过了解之后,原来一直在使用,却是不容易被关注的知识点。

cgi、fastcgi、php-fpm的定义

  • cgi:是服务器(Apache/nginx)与应用程序(php/java)之间数据交换的一种协议
  • fastcgi:是cgi的优化版,更加高效(常驻型cgi)
  • php-fpm:fpm(fastcgi process manager) fastcgi的实现 php的fastcgi进程管理器

引导

首先,我们先梳理整个web请求流程

在整个网站架构中,Web Server(如Apache)只是内容的分发者。举个栗子,如果客户端请求的是 index.html,那么Web Server会去文件系统中找到这个文件,发送给浏览器,这里分发的是静态数据。
如果请求的是 index.php,根据配置文件,Web Server知道这个不是静态文件,需要去找 PHP 解析器来处理,那么他会把这个请求简单处理,然后交给PHP解析器。
当Web Server收到 index.php 这个请求后,会启动对应的 CGI 程序,这里就是PHP的解析器。接下来PHP解析器会解析php.ini文件,初始化执行环境,然后处理请求,再以规定CGI规定的格式返回处理后的结果,退出进程,Web server再把结果返回给浏览器。这就是一个完整的动态PHP Web访问流程。

一次完整nginx与与php-fpm的结合
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值