文章12:初探Nginx架构之进程模型与事件处理机制

本文介绍了Nginx的架构,包括其多进程模型,由一个master进程管理多个worker进程。worker进程通过监听socket处理请求,避免惊群现象。Nginx采用异步非阻塞的事件处理机制,实现高并发,推荐worker进程数与CPU核心数一致,以减少不必要的上下文切换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

欢迎大家转载,转载请注明出处 http://blog.youkuaiyun.com/yankai0219/article/details/8018275
来自yankai0219
文章内容:
0.序
1.概述
2.Nginx的进程模型
3.Nginx的事件处理机制
   3.1基本知识:
   3.2网络事件的事件处理机制
   3.3通过几个问题,进一步理解Nginx的网络事件处理机制
   3.4如何处理信号和定时器呢?
4.总结
5.参考文章

0.序
     本文主要参考http://tengine.taobao.org/book/chapter_2.html#connection 初探Nginx架构,实际上是这篇文章的一个概括总结
1.概述
     nginx在启动后,在unix系统中会以daemon的方式在后台运行,后台进程包含一个master进程和多个worker进程。我们也可以手动地关掉daemon模式,让nginx在前台运行,这个时候,nginx就是一个单进程的,很显然,生产环境下我们肯定不会这么做,所以关掉daemon的方式,一般是用来调试用的,在后面的章节里面,我们会详细地讲解如何调试nginx。所以,我们可以看到,nginx是以多进程的方式来工作的,当然nginx也是支持多线程的方式的,只是我们主流的方式还是多进程的方式,也是nginx的默认方式。nginx采用多进程的方式有诸多好处,所以我就主要讲解nginx的多进程模式吧
 2.Nginx的多进程模式(即Nginx的进程模型)
         nginx在启动后,会有一个master进程和多个worker进程。 master进程主要用来管理worker进程,包含:接收来自外界的信号,向各worker进程发送信号,监控worker进程的运行状态,当worker进程退出后(异常情况下),会自动重新启动新的worker进程。而 基本的网络事件,则是放在worker进程中来处理了。多个worker进程之间是对等的,他们同等竞争来自客户端的请求,各进程互相之间是独立的。一个请求,只可能在一个worker进程中处理,一个worker进程,不可能处理其它进程的请求。worker进程的个数是可以设置的,一般我们会设置与机器cpu核数一致,这里面的原因与nginx的进程模型以及事件处理模型是分不开的。 worker进程的个数与机器cpu个数一致,这里面的原因与nginx的进程模型及事件处理模型有关。nginx的进程模型,可以由下图来表示:

     在nginx启动后,如果我们要操作nginx,要怎么做呢?从上文中我们可以看到,master来管理worker进程,所以我们只需要与master进程通信就行了。master进程会接收来自外界发来的信号,再根据信号做不同的事情。所以我们要控制nginx,只需要通过ki
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值