网站首页 > 技术教程 正文
nginx 分为两种进程结构:单进程 / 多进程。
单进程模型下主进程就是工作进程,此时没有监控进程,主要是用于调试用,。
我们生产环境主要是使用多进程模型。所以我们主要介绍多进程模型。
多进程模型下Nginx启动后会有多个进程。
首先会有1个主进程master_process(也叫监控进程)主要做进程管理的,监控worker进程是否需要做热部署,重载配置文件等。如果某工作进程意外退出,监控进程将重新fork()生成一个新的工作进程。
主进程还会fork()一些子进程。子进程分为两类:一类是work进程,另一类是cache相关进程。
work进程一般设置成cpu核心数 ,Nginx采用了事件驱动,目的是为了让每个work进程可以独占一个cpu,更好地使用cpu缓存,减少缓存失效的命中率,以提高处理效率。work进程间的通信是通过共享内存解决的。
在Ngnix中,work进程会去accept请求,这与php扩展swoole不同,swoole在master进程内有自己的reactor线程组用来accept请求,所以swoole的服务可以自主的分发请求到不同的worker进程上。
cache类进程 有cache manager / cache loader。
这些进程之间会相互进行通信,以传递一些信息(主要是监控进程往工作进程传递)。除了自身进程之间的相互通信,Nginx还凭借强悍的功能模块与外界四通八达,比如通过upstream与后端Web服务器通信、依靠fastcgi与后端应用服务器通信等。
那么有没有想过Nginx为什么采用多进程结构,而不是多线程结构呢?
Nginx要保持它自身的高可靠性,如果使用多线程模型,多线程之间是共享同一个地址空间的。
如果有一个第三方模块引发了地址空间导致的段错误时,会导致整个Nginx进程就挂了。
当我们采用多进程模型时,就会很好地规避这个风险。
Nginx在设计时,允许第三方模块添加自己的功能,那么我们知道了这个潜在风险,是不是就不会往master进程里去添加第三方模块的功能了呢?
欢迎沟通讨论!
猜你喜欢
- 2024-10-14 nginx的进程模型与配置(nginx进程数配置)
- 2024-10-14 还在为购买了便宜的服务器却不能用来做更多事而烦恼吗?
- 2024-10-14 快速Nginx入门,看此文即可快速掌握
- 2024-10-14 Nginx进程间的通信机制(nginx进程数)
- 2024-10-14 5分钟搞懂nginx进程模型及相关配置
- 2024-10-14 nginx——优化 Nginx worker 进程数
- 2024-10-03 Nginx 最大连接数(nginx最大连接数设置)
- 2024-10-03 浅谈linux下进程最大数、最大线程数、进程打开的文件数
- 2024-10-03 Nginx凭啥并发数可以达到3w?(nginx10万并发)
- 2024-10-03 Nginx基础配置实例需求分析(nginx配置文件详解带实例)
你 发表评论:
欢迎- 最近发表
-
- 阿里P8大佬总结的Nacos入门笔记,从安装到进阶小白也能轻松学会
- Linux环境下,Jmeter压力测试的搭建及报错解决方法
- Java 在Word中合并单元格时删除重复值
- 解压缩软件哪个好用?4款大多数人常用的软件~
- Hadoop高可用集群搭建及API调用(hadoop3高可用)
- lombok注解@Data没有toString和getter、setter问题
- Apache Felix介绍(apache fineract)
- Spring Boot官方推荐的Docker镜像编译方式-分层jar包
- Gradle 使用手册(gradle详细教程)
- 字节二面:为什么SpringBoot的 jar可以直接运行?
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)