CGI与FastCGI,PHP-FPM区别

本文详细介绍了CGI、FastCGI和PHP-FPM之间的区别。CGI和FastCGI是通信协议,而PHP-CGI和PHP-FPM是其实现。CGI为每个请求创建新进程,效率低;FastCGI则使用持续进程,提高性能。PHP-FPM作为PHP的FastCGI管理器,支持平滑重启,改善了PHP-CGI的不足。

一、CGI 和 FastCGI 都只是一种通信协议规范,不是一个实体,一般说的CGI指的是用各种语言编写的能实现该功能的程序

二、CGI 程序和FastCGI程序,是指实现这两个协议的程序,可以是任何语言实现这个协议的。(PHP-CGI 和 PHP-FPM就是实现FastCGI的程序)

三、PHP-CGI是使用php实现CGI协议的CGI程序,可以用来管理php解释器。 

        1.php-cgi变更php.ini配置后需重启php-cgi才能让新的配置生效,不可以平滑重启
        2.直接杀死php-cgi进程php就不能运行了

四、CGI程序和FastCGI程序的区别:
关于CGI程序:
CGI使外部程序与Web服务器之间交互成为可能。CGI程序运行在独立的进程中,并对每个Web请求建立一个进程,这种方法非常容易实现,但效率很差,难以扩展。面对大量请求,进程的大量建立和消亡使操作系统性能大大下降。此外,由于地址空间无法共享,也限制了资源重用。

关于FastCGI程序:
与CGI程序为每个请求创建一个新的进程不同,FastCGI使用持续的进程(master)来处理一连串的请求。这些进程由FastCGI服务器管理,而不是web服务器。 当进来一个请求时,web服务器把环境变量和这个页面请求通过一个socket或者一个TCP connection传递给FastCGI进程。

五、关于PHP-FPM(FastCGI Process Manager)
针对PHP-CGI的不足,PHP-FPM和Spawn-FCGI应运而生,它们的守护进程会平滑从新生成新的子进程,会生成多个php-fpm进程,其中一个为主进程多个副进程,主进程只做对副进程的管理(如某个副进程死掉,主进程会重新唤醒),副进程负责处理php请求
1)PHP-

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值