cgi、fastcgi和php-fpm三者的关系
2018-03-23 15:35
525 查看
最近学习nginx服务器的搭建与配置时,偶然看到关于fastcgi这个名词,经过了解之后,原来一直在使用,却是不容易被关注的知识点。
fastcgi:是cgi的优化版,更加高效(常驻型cgi)
php-fpm:fpm(fastcgi process manager) fastcgi的实现 php的fastcgi进程管理器
在整个网站架构中,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的结合
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的结合
相关文章推荐
- 什么是nginx、CGI、fastCGI、php-fpm、PHP-CGI,fast-CGI 与 php-cgi又是什么关系
- Web Server、CGI、PHP-CGI、FastCGI和php-fpm之间的关系
- CGI、FastCGI和PHP-FPM关系图解
- CGI、FastCGI和PHP-FPM关系图解
- CGI、FastCGI和PHP-FPM关系图解
- CGI,FastCGI,php-cgi,php-fpm的关系
- CGI与fastcgi与php-fpm与php-cgi的关系
- CGI、FastCGI和PHP-FPM关系图解
- CGI、FastCGI和PHP-FPM关系图解
- 如何通俗地解释 CGI、FastCGI、php-fpm 之间的关系?
- 关系:CGI,FastCGI,PHP-CGI与PHP-FPM
- PHP cgi fastcgi & php-fpm 的关系以及理解
- PHP-CGI, FastCGI, PHP-FPM的关系和区别
- CGI,FastCGI,PHP-CGI,PHP-FPM之间的关系
- Nginx解析PHP的原理 | CGI、FastCGI及php-fpm的关系
- CGI、FastCGI、php-fpm 之间关系的区别
- CGI,FastCGI和PHP-FPM之间的关系和区别。
- php CGI、Fastcgi、PHP-FPM的详细介绍与之间的关系
- Web Server、CGI、PHP-GGI、FastCGI和php-fpm之间的关系
- cgi、fastCGI、php-fpm关系梳理