美文网首页PHP开发PHP经验分享
nginx php-fpm 架构模式

nginx php-fpm 架构模式

作者: Renew全栈工程师 | 来源:发表于2020-12-19 02:41 被阅读0次

前言.进程池

什么是进程池,干嘛用的,会带来什么问题

正常情况下,我们一台服务器的配置是有限的,在有限的配置情况下,我们不可能无限开启 进程(子进程worker),如果每次来一个请求开启一个进程,然后完毕之后销毁一个进程,这样n个请求,我并不能开启n个进程,而且每次开启销毁内存开销也比较大,所有才有了进程池感念

进程池一般都有 最低 进程数量 min,最大进程数量 max 这两个有什么用呢
min 最低进程数量是为了节省 开启进程所耗费的时间,提前开启进程,然后需要时候直接取出一个进程给需要的地
max 最大进程数量是因为服务器内存所限制,总不能服务器无限开启进程数量,总归不能把服务器卡死,所以等当前进程数量=max最大进程数量的时候,就不会再创建进程了

会带来什么问题

所以这时候当服务器同时收到请求大于最大进程池数量的时候,就无法在进行处理请求,只能等待其中的一个进程结束后,再来当前处理请求,当然一般这个等待也是有时间限制的,超过时间限制就会请求超时等

1.nginx

nginx 一个主进程(master) 对应 多个工作进程(worker)

如 客户端进来10个请求,一个主进程会调用进程池获取10个工作进程(worker) 来进行处理

2.php-fpm cgi

php-fpm 也是一个主进程(master) 对应 多个工作进程(worker)

10个 nginx worker进程,会进行匹配当前request 所对应的php-fpm 然后把request 交给 php-fpm的主进程,然后php-fpm 主进程会调用进程池来获取10工作进程(worker) ,然后交由worker处理,并且吧返回结果给nginx的worker进程,所以多进程情况下,也有可能出现并发操作,这时候phper,要对数据库一些关键点进行加锁处理,哪怕是开启事务也需要 select .... for update

相关文章

  • nginx php-fpm 架构模式

    前言.进程池 什么是进程池,干嘛用的,会带来什么问题 正常情况下,我们一台服务器的配置是有限的,在有限的配置情况下...

  • lnmp动静分离实验

    LNMP代表的就是:Linux系统下Nginx+MySQL+PHP(php-fpm独立服务器)这种网站服务器架构。...

  • Mac nginx 环境命令

    启动nginx 重启nginx 启动mysql 启动php-fpm

  • helloword

    开机启动Nginx php-fpm

  • nginx 调用docker php-fpm 502 Bad G

    nginx是在服务器上运行,php-fpm是在docker上运行,nginx 调用php-fpm 出现 502 B...

  • 服务器宕机后重启服务

    启动php:service php-fpm start重启Nginx:service nginx restart重...

  • Swoft HTTP 服务

    传统基于LNMP的Web架构中,Nginx作为Web服务器,PHP-FPM维护一个进程池去运行Web项目。简单、成...

  • Yii/CodeIgniter/Phalcon/MixPHP 基

    测试环境 硬件环境(虚拟机): 4核 1G 运行环境: Nginx 8 进程 ,PHP-FPM 静态模式 8进程,...

  • Centos安装nginx

    先安装nginx 软件源 安装nginx、php、php-fpm、php-mysql 启动nginx php-fp...

  • 4,nginx基础

    ubuntu+nginx+php 1,安装nginx 2,配置php-fpm 3,nginx配置 4,重启服务 参...

网友评论

    本文标题:nginx php-fpm 架构模式

    本文链接:https://www.haomeiwen.com/subject/nrdqnktx.html