nginx不支持对外部程序的直接调用或者解析,所有的外部程序(包括php)必须通过FastCGI接口调用。FastCGI接口在linux个是socket(这个socket可以是文件socket,也可以是ip socket),为了调用CGI程序,还需要FastCGI的wrapper(wrapper 可以理解为用于启动另一个程序的程序), 这个wrapper绑定在某个固定的soket上,如端口或者文件soket. 当nginx将cgi请求发送给这个socket的时候,通过FastCGI接口, wrapper接受到请求,然后派生出一个新的线程,这个线程调用解释器或者外部程序处理脚本并读取返回数据,接着,wrapper将再返回的数据通过FastCGI接口,沿着固定的socket传递给nginx,最后,nginx将返回的数据传送给客户端。