CGI FastCGI Nginx
CGI 什么是CGI CGI全称通用网关接口,是一种让客户端(web浏览器)与web服务器(nginx等)程序进行通信(数据传输)的协议 用来规范web服务器传输到php解释权中的数据类型以及数据格式,包括URL、查询字符串、post数据、http header等,也就是为了保证webserver传递过来的数据是标准格式的 CGI可以用任何一种具有标准输入、输出和环境变量的语言编写,如php、perl、tcl等。不同类型语言写的程序只要符合cgi标准,就能作为一个cgi程序与web服务器交互,早期的cgi大多都是c或c++编写的 一般说的cgi指的是用各种语言编写的能实现该功能的程序 CGI程序的工作原理 每次webserver收到index.php这种类型的动态请求后,会启动对应的CGI程序(php的 解析器) php解析器会解析php.ini配置文件,初始化运行环境,然后处理请求,处理完成后将数据按照cgi规定的格式返回给webserver然后退出进行进程 最后webserver再把结果返回给浏览器 CGI程序的特点 高并发时性能较差 cgi程序的每一次web请求都会有启动和退出过程,也就是最为人诟病的fork-and-execute模式(每次HTTP服务器遇到动态请求时都需要重新启动脚本解析器来解析php.ini,重新载入全部dll扩展并初始化全部数据结构