CGI,FASTCGI,PHP-CGI,PHP-FPM 概念

栏目: 后端 · 前端 · 发布时间: 6年前

内容简介:既然webserver想把这个请求交给可以处理的人来做,是不是该告诉人家一些基本的,并且人家看得懂的信息信息?Webserver会传那些基本信息给后端处理请求的解析器呢?url,get请求的query_string,POST数据,Http Header等,那么CGI就规定了要传哪些参数,以及以一个什么样的格式传过去,后端处理完这个请求,又该以什么样的格式传回。概念:CGI(Common Gateway Interface)全称是“通用网关接口”,WEB 服务器与PHP应用进行“交谈”的一种工具,其程序须运行

CGI(Common Gateway InterFace)

既然webserver想把这个请求交给可以处理的人来做,是不是该告诉人家一些基本的,并且人家看得懂的信息信息?

Webserver会传那些基本信息给后端处理请求的解析器呢?url,get请求的query_string,POST数据,Http Header等,那么CGI就规定了要传哪些参数,以及以一个什么样的格式传过去,后端处理完这个请求,又该以什么样的格式传回。

概念:CGI(Common Gateway Interface)全称是“通用网关接口”,WEB 服务器与 PHP 应用进行“交谈”的一种工具,其程序须运行在网络服务器上。CGI可以用任何一种语言编写,只要这种语言具有标准输入、输出和环境变量。也就是说,CGI用来在web服务器与后端实现了CGI协议的程序之间提供一个沟通的桥梁,降低两者之间的耦合性。

缺陷:采用了效率低下的”FE”模式,就是Fork-And-Execute,每个web请求进来之后,都会启动一个php程序,处理完请求后退出,浪费资源,高请求数下,服务器宕机。

FastCGI

有没有效率更高的解决办法呢,可以不可一完事先别走呢?

这就衍生出了FastCGI,也可以理解为一种协议,在CGI协议上进行强化,从原来的”FE”模式进化为”LL”模式,即Long-Live模式,运行完毕之后,常驻内存。同样,它也是语言无关性的,只要你具有标准输入输出和环境变量,那么就OK。

FastCGI会先启动一个Master进程,Master读取和处理基础的配置文件,初始化环境,之后依据配置生成多个worker进程来处理请求。并且可以动态调整worker的数量。

PHP-CGI

Fast-cgi听起来很不错,有没人用用它的呀?php-cgi是实现FastCGI协议的php解释器。

缺陷:

更改php.ini配置后需要重启php-cgi进程,且会杀死正在运行的进程。

单进程,不具备进程管理能力,效率很低。

PHP-FPM

概念:一个实现FastCGI多进程(进程池)管理的管理器。开启之后,会看到多个php-cgi进程,它们都由php-fpm管理。

一些进步:

修改配置后,平滑过渡,新的worker进程使用新的配置,正在运行的worker进程处理完当前请求后自动shutdown。多进程的效率比单进程更高。

CGI,FASTCGI,PHP-CGI,PHP-FPM 概念

转载来源: http://lib.csdn.net/article/p...

CGI,FASTCGI,PHP-CGI,PHP-FPM 概念


以上所述就是小编给大家介绍的《CGI,FASTCGI,PHP-CGI,PHP-FPM 概念》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Pro Git

Pro Git

Scott Chacon / Apress / 2009-8-27 / USD 34.99

Git is the version control system developed by Linus Torvalds for Linux kernel development. It took the open source world by storm since its inception in 2005, and is used by small development shops a......一起来看看 《Pro Git》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

html转js在线工具
html转js在线工具

html转js在线工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具