关闭

nginx的进程模型

标签: 前端
67人阅读 评论(0) 收藏 举报

nginx是一个用master进程来管理多个worker进程的,一般情况下,worker的数量与cpu的核数相同,每个worker是繁忙的,因为它们才是真正的处理http请求,提供互联网服务的,而master则相对清闲,只负责监控和管理worker进程;

master-worker模型的好处:

1.由于master进程不会对用户请求提供服务,只用于管理真正提供服务的worker进程,所以它仅专注管理工作,为管理员提供命令服务,比如:启动服务,停止服务,重载配置文件,平滑升级程序等;此外master的权限最大,当任意一个worker进程出现错误而崩溃时,能够立即启动新的worker来继续服务;

2.多个worker进程处理互联网请求,不但可以提高服务的健壮性,(一个worker进程出错后,其他worker进程仍然可以正常提供服务),更重要的是,这样可以充分利用现在常见的smp多核架构,即多并发处理,避免出现进程之间的切换,节省大量的cpu资源开销;


worker进程处理http请求的流程:

先根据配置文件的配置建立好需要监听的地址和端口,然后fork出worker进程,这时候所有的worker进程就可以监听和处理这个http请求了

一个http请求只能够被一个work进程处理,nginx引入了 accept-mutex 互斥锁,抢到互斥锁的work进程就可以处理该请求

流程:

读取请求---解析请求---处理请求---产生数据并返回给客户端---断开连接;

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1560次
    • 积分:121
    • 等级:
    • 排名:千里之外
    • 原创:11篇
    • 转载:0篇
    • 译文:0篇
    • 评论:1条
    文章分类
    最新评论