nginx php-fpm 架构模式

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

正常情况下,我们一台服务器的配置是有限的,在有限的配置情况下,我们不可能无限开启 进程(子进程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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值