由于自己搭建环境.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 &



Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐