1.了解Nginx的热部署
(1)先来说一下运行nginx服务开启的进程情况
Ngnix中的进程分为两类,一类是master进程,一类是worker进程
其中master进程是用来管理监控控制其下边的worker进程的主进程,这个进程由root发起
其中原因是http这个服务需要启用80端口,而只有root才有权限启用80端口
而顾名思义,worker进程才是真正working的进程,才是真正处理请求的进程
这些进程全部都是master进程的子进程,这些进程是以普通用户的身份进行运行的,这样就可以极大增加程序的安全性
就算是万一有一个进程被劫持,那也不会有管理员权限
Worker进程中,原生的功能只有最基本的web服务
但是由于nginx是高度模块化的应用程序,所以,在每一个worker进程中,有着一个或者多个模块
但是需要注意的是,装载的模块可不是全部一次加载进去的,只有当这个进程真的需要这个模块的时候,才会被这个工作进程加载
在我看来,模块化的思想和面向对象的思想,是推动现代整个开发的重要思想
由于nginx这个高度模块化的机制,也成就了其高效轻量的特点
(2)进行热部署的前提条件(也就是为什么nginx可以进行热部署)
nginx 的热部署和其并发模型有着密不可分的关系,是因为 master 进程和worker进程的关系
当系统通知 ngnix 重读配置文件的时候,master 进程会进行语法错误的判断
如果存在语法错误的话,返回错误,不进行装载;如果配置