关于CGI相关定义以及介绍
CGI(COMMON GATEWAT INTERFACE)全称为通用网关接口 WEB服务器与PHP应用进行交谈的一种接口 其程序需运行在网络服务器上。CGI可以用任何一种语言编写,只要这种语言有标准输入、输出和环境变量。如perl、tcl、php等。
CGI针对每个HTTP请求 都会fork一个新的进程来处理(解析配置文件,初始化执行环境,处理请求)然后把这个进程处理完的结果通过WEB服务器转发给用户,刚刚fork的新进程也随之退出如果下次用户再次请求动态资源,那么web服务器再次fork一个新进程,如此周而复始循环往复。
关于FAST CGI的相关定义以及介绍
FASTCGI顾名思义就是CGI的升级版本
FASTCGI则会先fork一个master新进程,解析配置文件,初始化执行程序,然后会进而fork多个work进程(与nginx较为相像),当HTTP请求过来时,master进程将其会传递给一个work进程,然后可以立即接受下一个请求,这样就会避免了重复的初始化操作,效率自然也就提高了,当work请求不太够用的时候,master进程还会根据配置预先启动几个work进程等待,当work请求太多的时候 master进程也会杀掉几个work请求,这样不仅提高了性能,还节省了不少的系统资源。这就是FASTCGI与CGI的区别