php-fpm fastcgi phpcgi这些是干嘛用的?

3 篇文章 0 订阅
2 篇文章 0 订阅

今天下午搞了一下午php-fpm,因为他会自动屏蔽那些扩展名非.php的文件,导致网页获取不到css和js程序。
突然发现自己对php,php-fpm,fastcgi,phpcgi这几个名词以及他们之间是怎么协调工作的还不理解,无意中看到segmentfault里面有说的比较好的,顺便记下来:

1.CGI就是一套接口规则,它用于HTTP服务器和动态处理程序之间的通讯方式的确立。FastCGI可以算是CGI的一种实现,它通过让CGI处理程序常驻进程,让一个CGI进程可以处理多个请求,减少了反复启动CGI程序的时间和资源的消耗。

2.php-cgi就是一个用来提供PHP程序处理的FastCGI。
3.php-fpm(FastCGI Process Manager)则是在FastCGI程序之上来管理FastCGI进程的管理工具。

php-cgi是单进程的,开启一个php-cgi来处理请求时,一次只能处理一个请求,其余请求时排队的。
php-fpm则管理多个FastCGI进程,让请求可以并行发送到多个FastCGI进程同时处理。
可以简单的理解为php-fpm管理着多个php-cgi

举个简单的例子,一个请求从客户端发送到Nginx服务器再由PHP程序处理的过程:

  • 请求发送到Nginx服务器,Nginx服务器根据配置将其发送到php-fpm,然而Nginx和php-fpm是两家公司的产品,他们如果确保相互之间能读懂对方发送的信息内容的?这就是因为他们在设计时都遵循了CGI的规则。

  • php-fpm收到请求后,会在自己所管理的FastCGI进程中找到一个空闲的进程,来处理这个请求

  • 另外Nginx也可以对接php-cgi,不过php-cgi没有进程管理模块,而就是单进程的。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值