由于自己搭建环境.php文件总是不解析,出现502 badgateway错误。
检测应该是fastcgi与nginx没有打配好。
简单了解了下
主要区别:
cgi是最早的http服务器处理动态请求的程序。
每来一个动态请求,就fork一个新的进程来处理,处理完了返回。然后关闭刚刚的进程。
fastcgi是http服务器启动时就一直启动着,跟随启动。新的请求进来后,自己逐个解析。好像是tcp处理
(ps 最近看http协议详解。看完了估计理解的会透彻些,再补充。)
处理完了之后就等着新的请求。
这样按照我的理解有个后台进程一直监控着,不用初始化了。速度自然就快了。当然后者会占用一定内存了。
另外一般 fastcgi用 fpm管理。
比如 index.php 通过nginx接受后,要处理。就交给php解析器去处理,处理的时候就启动对应的cgi,就是php的解析器,然后读取php.ini配置,初始化巴拉巴拉。(如果用cgi就每次都要执行这个过程,效率很低)
fastcgi就不一样了。会有一个主进程,然后有请求就开一个新的进程。fastcgi会自己先开几个进程等着,如果够用自己也会关掉。很智能。效率高。
话说回来,fpm呢。按照之前说的cgi是个协议,就是规定你怎么处理 ,怎么返回php。fastcgi也是个协议了就是。
fpm的管理对象是php-cgi。
cd /usr/local/php/bin/
后台启动cgi之后,我的502错误就没有啦。
./php-cgi -b 9000 &