Nginx与php-fpm之间的关系

在web开发中Nginx和php-fpm(下文简称fpm)之间的协同工作是进行动态网页开发的关键。首先我们先来了解一下cgi和fast-cgi。cgi是是web server和后台语言交互的协议,有了这个协议开发者可以使用任何后台语言处理web server的请求,动态生成内容返回。但是cgi协议有一个致命的缺陷就是每一个请求都会执行一次fork创建一个子进程,子进程通过加载配置文件、初...
摘要由CSDN通过智能技术生成

在web开发中Nginx和php-fpm(下文简称fpm)之间的协同工作是进行动态网页开发的关键。

  • 首先我们先来了解一下cgi和fast-cgi。

    • cgi是是web server和后台语言交互的协议,有了这个协议开发者可以使用任何后台语言处理web server的请求,动态生成内容返回。但是cgi协议有一个致命的缺陷就是每一个请求都会执行一次fork创建一个子进程,子进程通过加载配置文件、初始化执行环境然后才开始处理请求,处理完成后结束该处理进程。随着web开发的兴起,高并发越来越成为了常态,这样的处理方式以满足不了日常的高并发需求,于是fast-cgi就出现了。
    • fast-cgi,顾名思义是一个更快地cgi协议,与cgi不同的是允许一个进程处理多个请求,而不是处理完一个请求就结束。fast-cgi协议采用的是一个master进程管理多个worker进程的模式处理请求的。当一个请求来临时首先master进程会加载配置文件(php.ini)、初始化执行环境并解析请求,然后选用一个worker进程进行实际的处理,worker进程处理完返回之后继续等待master分配。
  • Nginx(web sever)担任的是一个内容分发者的角色,如果客户端(浏览器)请求的是index.html文件,即静态文件,Nginx会去文件系统中找到该文件发送给浏览器。当请求的是index.php文件,即动态文件的时候,Nginx通过配置将该文件交给php解析器处理(Nginx不会对任何文件做处理),Nginx就通过fast-cgi协议将请求发送给php解析器处理。

  • fpm是一个 php进程管理器,包含 master 进程和 worke

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值