什么是nginx、CGI、fastCGI、php-fpm、PHP-CGI,fast-CGI 与 php-cgi又是什么关系

nginx是作什么用的
是浏览器(用户)与服务器交互的一个服务,他只能处理静态文件。若是发现是本身处理不了的文件,根据配置能够将其转发到对应的其余服务上
 
什么是CGI
1.当server收到一个php的请求时,会启动一个程序去处理当前的请求,而这个程序就是CGI。
2.CGI会查看phpini的配置并载入、初始化进程并处理请求,这个过程在每一次处理php请求时都会发生,因此会形成严重的资源开销
3.CGI的中文含义是通用网关接口,也就是说只要可以返回标准html数据的服务均可以叫作CGI。因此CGI不仅仅是php才有的东西
 
什么是fastCGI
由于上面第二条的问题,当请求量过大时CGI程序会严重浪费系统资源的。这样fastcgi就是为了解决这个问题。
fastcgi会提供这样的功能:首先会由某个程序读取相应的配置文件并初始化执行环境,当这一系列步骤完成以后,他会一下生成不少个cgi进程(也就是进程池),这样在之后处理php的请求时就不须要频繁的“读取配置、建立进程、销毁进程这样的步骤了”,因此fastcgi能够理解为就是为了实现这种效果而产生的一种处理办法
 
什么是php-fpm
用来实现fast-cgi的操做
“php-fpm是fastcgi进程的管理器,用来管理fastcgi进程的”,这句话能够理解成php-fpm就是可以实现fastcgi功能的程序,他目前由php官方集成到php内核中。因此就是若是要实现cgi的进程池功能就须要使用php-fpm
 
什么是PHP-CGI
php-cgi只是解释PHP脚本的程序而已
 
fast-CGI 与 php-cgi关系
一个是协议,在php中由php-fpm实现,管理着解析php脚本的进程
另外一个是一个程序,专门处理php脚本。
他俩并无必定的可比性,由于不是一个东西。
 
参考资料: