CGI、FastCGI和PHP-FPM关系图解
来源:互联网 发布:linux中文语言包 编辑:程序博客网 时间:2024/05/20 21:44
webapp即是php解析器等
当Web Server收到 index.php 这个请求后,会启动对应的 CGI 程序,这里就是PHP的解析器。接下来PHP解析器会解析php.ini文件,初始化执行环境,然后处理请求,再以规定CGI规定的格式返回处理后的结果,退出进程,Web server再把结果返回给浏览器。这就是一个完整的动态PHP Web访问流程,接下来再引出这些概念,就好理解多了,
- CGI:是 Web Server 与 Web Application 之间数据交换的一种协议。
- FastCGI:同 CGI,是一种通信协议,但比 CGI 在效率上做了一些优化。同样,SCGI 协议与 FastCGI 类似。
- PHP-CGI:是 PHP (Web Application)对 Web Server 提供的 CGI
- 协议的接口程序。
- PHP-FPM:是 PHP(Web Application)对 Web Server 提供的 FastCGI 协议的接口程序,额外还提供了相对智能一些任务管理。
WEB 中,
- Web Server 一般指Apache、Nginx、IIS、Lighttpd、Tomcat等服务器,
- Web Application 一般指PHP、Java、Asp.net等应用程序。
- Web Server启动时载入FastCGI进程管理器(Apache Module或IIS ISAPI等)
- FastCGI进程管理器自身初始化,启动多个CGI解释器进程(可建多个php-cgi),并等待来自Web Server的连接。
- 当客户端请求到达Web Server时,FastCGI进程管理器选择并连接到一个CGI解释器。Web server将CGI环境变量和标准输入发送到FastCGI子进程php-cgi。
- FastCGI子进程完成处理后,将标准输出和错误信息从同一连接返回Web Server。当FastCGI子进程关闭连接时,请求便告处理完成。FastCGI子进程接着等待,并处理来自FastCGI进程管理器(运行在Web Server中)的下一个连接。 在CGI模式中,php-cgi在此便退出了。
FastCGI与CGI特点:
- 对于CGI来说,每一个Web请求PHP都必须重新解析php.ini、重新载入全部扩展,并重初始化全部数据结构。而使用FastCGI,所有这些都只在进程启动时发生一次。一个额外的好处是,持续数据库连接(Persistent database connection)可以工作。
- 由于FastCGI是多进程,所以比CGI多线程消耗更多的服务器内存,php-cgi解释器每进程消耗7至25兆内存,将这个数字乘以50或100就是很大的内存数。
升级:
原文:http://www.cnblogs.com/iiiiher/p/5911419.html
阅读全文
0 0
- CGI、FastCGI和PHP-FPM关系图解
- CGI、FastCGI和PHP-FPM关系图解
- CGI、FastCGI和PHP-FPM关系图解
- CGI、FastCGI和PHP-FPM关系图解
- 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-CGI与PHP-FPM
- cgi php-cgi fastcgi php-fpm Spawn-FCGI关系
- cgi fastcgi php-cgi php-fpm的概念及关系
- Web Server、CGI、PHP-CGI、FastCGI和php-fpm之间的关系
- cgi && fastcgi && php-fpm
- CGI/FastCgi/PHP-FPM
- 【菜鸟的leetcode之旅】String to integer atoi
- JavaScript基础之JQuery的扩展
- 虚拟机上网问题解决
- Docker使用: 一 前篇 debian安装
- java调用HttpPost,HttpGet调用示例
- CGI、FastCGI和PHP-FPM关系图解
- ArcGIS oracle空间数据库的备份,导入
- Hql参数占位符使用
- 利用node简单的搭建线上服务器
- JAVA利用第三方平台发送短信验证码。(转发用来学习)
- ERROR 1064 (42000):You have an error in your SQL syntax; check the manual that corresponds to your M
- 基础总结:关于Android架构
- Android渐变色制作
- Linux从入门到精通 笔记