进程结构图
使用共享内存进行通行的。
Linux的信号量管理机制
输入命令: kill -l
常见信号量
利用信号量管理Nginx进程
使用信号量管理master和worker
Master进程
Worker进程
命令行:
输入以下命令:
ps -ef | grep nginx
你会发现worker子进程会和父亲进程master进行绑定。
worker默认会自动监测有几颗cpu,然后进行绑定。
进入nginx.conf命令:vim /etc/nginx/nginx.conf
如果你将worker_processes auto; 改为 2 。
然后杀掉nginx , 再启动即可,命令如下:
ps -ef | grep nginx // 查看进程
kill xxxxx
/usr/sbin/nginx // 重启
如果忘记重启命令 可以输入以下
rpm -ql nginx | grep bin
你会发现真的就两个worker了
你可以输入 lscpu ,查看自己的cpu数。
也可以给nginx后面接一个信号量进行管理
/usr/sbin/nginx -s stop
/usr/sbin/nginx -s reload 重启
配置文件重载的原理真相
reload重载配置文件的流程
1、向master进程发送HUP信号(reload命令)
2、master进程检查配置语法是否正确
3、master进程打开监听端口
4、master进程使用新的配置文件启动新的worker子进程、
5、master进程向老的worker子进程发送QUIT信号
6、旧的worker进程关闭监听句柄,处理完当前连接后关闭进程
不停机生效新的配置
Nginx的热部署
热升级的流程
1、将旧的nginx文件替换成新的nginx文件
2、向master进程发送USR2信号
3、master进程修改pid文件,加后缀.oldbin
4、master进程使用新nginx文件启动新master进程
5、向旧的master进程发送WINCH信号,旧的worker子进程退出
6、回滚情形:向旧master发送HUP,向新的master发送QUIT
输入以下命令查看安装目录:
/usr/sbin/nginx -V
热部署 新旧平缓、