nginx源码学习,第一节,一些准备

结构

master进程父进程1,
worker进程的父进程,master进程,fork()
一个master多个master
如下图:
第一个是用户,第二个是进程UUID,第三个是父进程id,之后还可以看到进程名字,如master processworker process
通过进程id和父进程id可以看到,worker process父进程都是master进程
在这里插入图片描述

进程模型

master进程,监控进程,不处理具体逻辑,专门管理worker进程
worker用来处理具体逻辑
查看进程:
ps -ef | grep nginx

通信方法

master与worker进程之间的通信,方法:信号,共享内存

稳定性

如果worker进程死掉一个,master会立即按照配置文件,启动新的worker进程
是worker进程数量保持在配置文件中指定的
例如杀死一个worker进程,自动增加一个
kill processId
效果如下:
在这里插入图片描述

  • 几个进程数量合适?
    多核cpu,每个worker进程单独占一个内核(processor),让cpu尽量少的切换
    查看processor的数量: grep -c processor /proc/cpuinfo
    给nginx配置worker进程的数量
    首先要把nginx注册进去才能进行关闭
    nginx/conf/nginx.conf设置worker 为4
    在这里插入图片描述
nginx灵活性:

nginx的命令:
查找:./nginx -?
在这里插入图片描述
例子:
1、动态重新加载conf文件,这样就是在不关闭nginx时就直接更改
./nginx -s reload
2、热升级,热回滚

结束nginx
1、杀master进程
2、./nginx -s quit(正常关闭)/stop(简单粗暴)

nginx是多进程模型,不是多线程

多线程是内存共享的,一个进程出错,其他的一定会受影响
多进程

  • linux的使用命令方式,
    systemctl stop/start/restart serviceName

  • nginx源码,c语言写的,nginx/src里面,每一个文件夹看名字就可以区分不同的模块儿

  • 搜索main函数,这是入口函数

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值