Cgi是一个web server与CGI程序之间进行数据传输的协议,保证了数据的传输是标准数据。
Php-cgi是PHP解释器,就是上文提到的CGI程序。
Fastcgi是用来提高CGI性能的方案/协议。CGI程序的性能问题在于:PHP解析器会解析PHP.ini文件,初始化执行环境,就是这里了,标准的CGI对每个请求都会执行这些步骤,所以处理的时间会比较长。
【fastCGI的进程管理】fastcgi会先启动一个master,解析配置文件,初始化执行环境,然后再启动多个worker,当请求过来的时候,master会传递给一个worker,然后立即可以接收下一个请求,这样就避免重复的劳动,效率自然也就高了,而且当worker不够用时,master可以根据配置预先启动几个worker等着,当然worker太多的时候,也会停掉一些,这样就提高到了性能,同时一定程度上节约了资源。
【PHP-fpm】php-fpm就实现了fastcgi的程序,也就是说,上面所提到的进程分配和管理是FPM来做的。