04-Nginx进程模型解析
Nginx进程模型解析
- master进程: 主进程
- worker进程: 工作进程
默认是一个主进程, 一个工作进程, Nginx的工作进程是可以通过配置文件进行修改的
# 工作进程数量
worker_processes 1;
修改nginx.conf配置, 修改为2
记得每次修改完成配置文件都进行检查一下, 避免发生错误
检查完成没有问题, 就可以重启Nginx了, 修改完成Nginx必须重启, 不然配置无法生效
重启完成后,再次查看, 工作进程变成了2个
执行过程
客户端发送请求到Master, 然后通过master进行请求分发, 到不同的worker, 然后通过worker与client进行交互
Worker抢占机制
worker在与client交互的过程中, 会需要进行锁的抢占, 谁争取到了,就进行处理, 没有争取到的进入等待
传统服务器事件处理
在传统的事件服务器中, 一个工作进程只能在同一时间处理一个客户端的请求, 一旦发生阻塞, 那么就需要开启新的进程处理新的请求, 这是典型的BIO同步阻塞模型, 缺点也非常明显, 在有大量请求过来的时候, 一旦发生阻塞, 就会开启大量的线程,造成资源的浪费和CPU标高问题, 这也是BIO的典型问题
Nginx事件处理
在Nginx的事件处理中, 一个工作进程可以在同一时间处理多个客户端的请求, 一个客户端请求发生阻塞, 并不会影响到该进程处理其他的请求, 这就是为了解决BIO的问题, 所产生的NIO同步非阻塞模型, 解决了BIO模型的痛点, 那就是一个工作进程只能处理, 一个客户端请求的问题, 在Linux上采用epoll也就是多路复用技术, 很明显的提高了性能和请求的并发量
那么如何配置这个客户端的最大连接数呢
events { # 默认使用 use epoll use epoll; # 每个worker允许的客户端最大连接数, 默认为1024, 可以修改 worker_connections 1024; }
没错, 记得修改完之后重启一下nginx
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
2021-09-06 16-SpringCloud Sleuth
2020-09-06 Activiti7 组任务
2020-09-06 Activiti7 流程变量(UEL-Value方式)
2020-09-06 Activiti7 流程变量(理论)