linux网络通讯架构实战篇【02、nginx整体结构、进程模型】

在这里插入图片描述

一:nginx的整体结构

  • master进程和worker进程概览(父子关系),启动nginx,看到了一个master进程,一个worker进程
    在这里插入图片描述

这里的root 和nobody表示进程所属的用户id,而拥有root权限的进程是linux中具有最高权限的进程, nobody同样也是属于系统用户,但是他的权限会比较低,那么worker进程的权限也会比较低,这样的好处是:假设被黑客攻击,或者利用了,但是权限很低,也无法对系统产生大的伤害

  • 第一列:UID,进程所属的用户id
  • 第二列:进程ID(PID),用来唯一的标识一个进程
  • 第三列:父进程ID(PPID)。

结论:
通过观察master和worker的进程pid就能发现他们是存在父子关系的, 而worker进程是被master进程通过fork()创建出来的, 既worker进程是master进程的子进程,master是父进程

nginx进程模型

  • 1、一1个master进程,一到多个worker进程 这种工作机制来对外服务的,这种工作机制保证了 nginx能够稳定灵活的运行。

  • 2、master进程责任:监控进程,不处理具体业务,专门用来管理和监控worker进程,master,角色是监工,比较清闲。
    在这里插入图片描述

  • worker进程:用来干主要的活的,(和用户交互)。

  • master进程和worker进程之间要通讯,可以用 信号 ,也可以用 共享内存

  • 稳定性,灵活性,体现之一:worker进程 一旦挂掉,那么master进程会立即fork()一个新的worker进程投入工作中去。

调整worker进程数量

worker进程几个合适呢?公认的做法: 多核计算机,就让每个worker运行在一个单独的内核上,最大限度减少CPU进程切换成本,提高系统运行效率,物理机:4核(4个processors);

博主这里的机器是16核
在这里插入图片描述
工作站
工作站:2个物理cpu ,蓝色的一个cpu,红色的一个cpu
每个物理cpu里边内核数量,是4个;core1 ~ core4
每个core里边有两个逻辑处理器(超线程技术/siblings)
所以总共有16个processors(最细小的单位,也就是平时大家说的处理器个数)
在这里插入图片描述
我们的worker进程内核数量也并不是没有设计的,一般都调整在与最大核数相同的数量,博主这里使用的是服务器先天限制了cpu是1核的就不能再更改nginx的worker数了,如果同学们使用的是宿主机是自己的电脑的话可以直接上手配置。该配置文件存在 nginx-1.14.2/conf/nginx.conf 目录下,如果条件允许建议将他改成4,这样表示的是设置nginx的worker进程数量为4。
在这里插入图片描述

二:nginx进程模型细说

nginx的可用选项
在这里插入图片描述

  • nginx重载配置文件 :在不中断nginx服务器修改完配置文件,让配置文件生效 ,指令:sudo ./nginx -s reload

  • nginx热升级,热回滚:在不停止web服务器对用户提供服务的前提下进行对nginx版本的升级这就叫做热升级,这里的热回滚的意思是即使是升级到了最新版本还是可以回滚到旧的版本(出于新版本不稳定的情况下)

  • nginx的关闭 ./nginx -s quit
    在这里插入图片描述

站在多进程,多线程的角度思考nginx的有点:

  • 多线程模型的弊端:共享内存,如果某个线程报错一定会影响到其他线程,最终会导致整个服务器程序崩溃。
  • nginx是以多进程的方式运行整个web服务器,会由master创建子进程worker,最终由master父进程去管理worker子进程的方式运作,即使是单个worker进程被杀掉了也并不影响其他的worker进程,并且master进程也会立马fork出一个新的进程
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱生活,爱代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值