网站首页 > 技术教程 正文
目录
- 概述
- web server(Nginx)工作流程
- CGI
- FastCGI
- FastCGI与CGI的区别
- php-fpm
- php7进阶到架构师相关阅读
概述
这是关于php进阶到架构之php7核心技术与最佳实战学习的第七篇文章:详解CGI,FastCGI,php-fpm三者区别与联系
- 第一篇:用房子的思维秒懂php7传值与传引用的区别
- 第二篇: php7语法糖好甜,让你迷上php魔术方法
- 第三篇:php7魔术方法__call的最佳实战之数据库PDO类的驱动设计实战
- 第四篇:精通PHP正则表达式,看这一篇就够啦!
- 第五篇:不懂对象设计原则,都不好意思自称php大师
- 第六篇:socket通信很难?这一文让你轻松搞定!
- 第七篇:详解CGI,FastCGI,php-fpm三者区别与联系
了解CGI,FastCGI,php-fpm三者区别前,需要先了解web server的工作流程。
web server(Nginx)工作流程
Web Server(如Nginx)只是内容的分发者。举个例子,如果客户端请求的是 index.html,那么Web Server会去文件系统中找到这个文件,发送给浏览器,这里分发的是静态数据,如下图:
当web server收到动态php请求呢?
比如当Web Server收到 index.php 这个请求后,会启动对应的 CGI 程序,这里就是PHP的解析器。接下来PHP解析器会解析php.ini文件,初始化执行环境,然后处理请求,再以规定CGI规定的格式返回处理后的结果,退出进程,Web server再把结果返回给浏览器。
CGI
是 Web Server (Apache、Nginx、IIS、Lighttpd、Tomcat等服务器)与 Web Application (PHP、Java、Asp.net等应用程序)之间数据交换的一种协议。
FastCGI
同 CGI,是一种通信协议,但比 CGI 在效率上做了一些优化。
FastCGI与CGI的区别
CGI针对每个http请求都是fork一个新进程来进行处理,
处理过程包括解析php.ini文件,初始化执行环境等,
然后这个进程会把处理完的数据返回给web服务器,
最后web服务器把内容发送给用户,
刚才fork的进程也随之退出。
如果下次用户还请求动态资源,那么web服务器又再次fork一个新进程,周而复始的进行。
Fastcgi则会先fork一个master,
解析php.ini配置文件,
初始化执行环境,
然后再fork多个worker。
当请求过来时,master会传递给一个worker,
然后立即可以接受下一个请求。
当worker不够用时,master可以根据配置预先启动几个worker等着;
当然空闲worker太多时,也会停掉一些,这样就提高了性能,也节约了资源。
php-fpm
那PHP-FPM又是什么呢?它是一个实现了Fastcgi协议的程序,用来管理Fastcgi起的进程的,即能够调度php-cgi进程的程序。
php7进阶到架构师相关阅读
https://www.kancloud.cn/gofor/gofor
最后,欢迎大家留言补充,讨论~~~
猜你喜欢
- 2024-10-14 记一次HttpDns业务调优——fastcgi-cache容量提升5倍
- 2024-10-02 还不会Nginx?京东技术官精心准备的一份Nginx高并发神器送给你
- 2024-10-02 透过原理看问题:为什么Nginx比Apache高效?
- 2024-10-02 从Nginx、Apache工作原理看为什么Nginx比Apache高效
- 2024-10-02 PHP理论知识之fastcgi与php-fpm的区别
- 2024-10-02 cgi、fastcgi、PHP-fpm都是什么(cgi和fastcgi和fpm)
- 2024-10-02 java编程技术FastDFS 安装和配置(fsp java)
- 2024-10-02 CGI,FastCGI,PHP-CGI与PHP-FPM区别详解
- 2024-10-02 SAPI php-fpm FastCGI原理介绍(phpfpm和fastcgi)
- 2024-10-02 快速上手阿里的分布式文件存储系统FastDFS
你 发表评论:
欢迎- 最近发表
-
- Linux入门-普通用户赋予sudo权限(linux基础用户及权限管理的思维导图)
- Linux系统更改系统用户与密码,RK3568工控主板演示
- 在Windows服务器上安装Linux系统5种主要方法!
- Linux系统非root用户执行Docker命令
- 2、linux命令-用户管理(linux用户和用户组管理)
- Linux下安装常用软件都有哪些?做了一个汇总列表,你看还缺啥?
- Linux中wheel组的使用(centos wheel组和sudo)
- 信息安全实战案例:Linux系统用户权限管理
- Linux 组的管理:groupmod命令 + 练习 + 思维导图
- Linux中的用户管理(linux用户管理的命令)
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)