什么是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脚本。
他俩并没有一定的可比性,因为不是一个东西。
参考资料: