php cgi替代,不要在傻傻分不清 CGI、FastCGI、PHP-CGI、PHP-FPM了

CGI是一种通用网关接口,每次处理请求时需重新启动进程,效率较低。FastCGI作为其改进版,采用常驻型进程,提高效率。PHP-CGI是解释PHP脚本的程序,而PHP-FPM是PHP的进程管理器,优化了进程管理,支持平滑加载配置文件。通过FastCGI,可以将PHP与HTTP服务器分离,如Nginx,实现更高效的负载分配。
摘要由CSDN通过智能技术生成

一、概念

首先,还得来点官方的解释。

CGI:common gateway interface 通用网关接口,它描述了客户端与程序之间传输数据的一种标准。简单来说它就是一种协议。

FastCGI:也是一种协议,是CGI的一种改进升级,实现上是一个常驻型进程,可以一直执行,在请求到来的时候不会重新fork进程去处理。

PHP-CGI:是一个程序,用来解释PHP脚本。

PHP-FPM:是一个进程管理器,只用作PHP,是PHP源码的一个补丁,将FastCGI进程整合到php包中,PHP-FPM提供了更好的PHP进程管理方式,可以有效地控制进程,平滑加载PHP配置。

明白不,一个是协议,一个是程序,一个是进程管理器,都有各自的职责,别老把人家往一起混。

二、来张图解,说说他们之间说的清道的明的关系

1,使用CGI时候的流程,为啥使用CGI会慢,就是因为它每次都要重新fork进程去处理数据,每次启动都要重新加载php.ini、重新初始化环境,每次都做费时费力的工作,能不慢么。

0f11496a9560

image.png

2,看看fastcgi是怎么改进的

人家就不像CGI进程那么傻,每次都重新开始,人家一开始就起一堆放在那,你来数据了我就让这些进程处理,处理完了就让进程呆在那等着,除了会占用内存多点,但人家效率高啊。

0f11496a9560

image.png

三、作用

1.fastcgi主要是把php语言和http server分开,所以nginx和php常常部署在不同机器上,以减轻nginx和后端的压力。

2.可以在进程不终止的情况下重新加载修改过的配置文件php.ini。

四、总结

如CGI,FastCGI也具有语言无关性。

如CGI, FastCGI在进程中的应用程序,独立于核心web服务器运行,提供了一个比API更安全的环境。(API是把应用程序的代码与核心的web服务器链接在一起,这意味着在一个错误的API的应用程序可能会损坏其他应用程序或核心服务器; 恶意的API的应用程序代码甚至可以窃取另一个应用程序或核心服务器的密钥。)

3.FastCGI技术目前支持语言有 PHP、C/C++、Java、Perl、Tcl、Python、SmallTalk、Ruby、Aardio等。相关模块在Apache,IIS, Lighttpd,Nginx等流行的服务器上也是可用的。

4.如CGI,FastCGI的不依赖于任何Web服务器的内部架构,因此即使服务器技术的变化, FastCGI依然稳定不变。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值