php cgi&fastcgi&php-fpm
CGI(Common Gateway Interface),通用网关接口。设置了web server的外部程序的规范。 简单理解,就类似于php的接口,定义了输入、环境变量、输出的规范。 interface Cgi { function input(); function env(); function output(); } 标准输入 STDIN (get方式的请求,不放在标准输入中。post可以。) 环境变量 系统环境变量+当有http请求时(http服务器+客户端+cgi传输过程的信息),如php的$_SERVER信息是从此处获取的 标准输出 STDOUT ((mime类型 / location / 状态码)作为第一行 + 空行 + 输出内容) cgi是运行在服务器上的,用于服务器与程序间的交互。 任何遵守cgi规范的程序都可以称为cgi程序。 php经常使用的服务器是nginx或Apache。 不过cgi有个硬伤,每次一个请求过来,都需要重新fork一个新的cgi进程,请求结束再kill掉该进程。若是有大量的请求过来,将直接搞摊服务器。 fastcgi就是为了处理这种情况而诞生的 ,每次fork一个cgi进程,请求结束并不会kill掉该进程,而是放回cgi池子,等待下一个请求。 有这么多的cgi进程,为了进一步管理这些cgi进程,php-fpm诞生了。 php