Nginx实战(三) 防盗链设置+版本的平滑升级与回退
1.nginx热部署
运行nginx服务开启的进程
Ngnix中的进程分为两类,一类是master进程,一类是worker进程
其中master进程是用来管理监控控制其下边的worker进程的主进程,这个进程由root发起,其中原因是http这个服务需要启用80
端口,而只有root才有权限启用80端口
顾名思义,worker进程才是真正working的进程,才是真正处理请求的进程
这些进程全部都是master进程的子进程,这些进程是以普通用户的身份进行运行的,这样就可以极大增加程序的安全性,就算是万一
有一个进程被劫持,那也不会有管理员权限
worker进程中,原生的功能只有最基本的web服务。但是由于nginx是高度模块化的应用程序,所以在每一个worker进程中,有着一个或者多个模块。
需要注意的是,装载的模块可不是全部一次加载进去的,只有当这个进程真的需要这个模块的时候,才会被这个工作进程加载
由于nginx这个高度模块化的机制,也成就了其高效轻量的特点
进行热部署的前提条件:
nginx 的热部署和其并发模型有着密不可分的关系,是因为 master 进程和worker进程的关系 当系统通知 ngnix重读配置文件的时
候,master 进程会进行语法错误的判断 如果存在语法错误的话,返回错误,不进行装载;
如果配置文件没有语法错误,那么ngnix 也不会将新的配置调整到所有 worker中;
而是先不改变已经建立连接的 worker,等待 worker将所有请求结束之后,将原先在旧的配
置下启动的 worker 杀死,然后使用新的配置创建新的 worker
所以可以做到在线更新版本,新版本和旧版本的进程可以同时存在,不影响客户的访问
热部署:
- 热部署在nginx中还是一个强大的功能,就是在线升级
- 其原理就是首先我们先会替换master进程,同时我们替换的master是与老版本的worker兼容的下一步,保持还有连接的worker进程,待其老去退休,进行替换
- 高度的模块化加上精巧的两层模型,让ngnix成为大家非常热爱的web service实现的方案
- nginx支持热加载热部署 ,其实就是在不打断用户请求的情况下更新版本,也就是在线更新版本
平滑升级
1.先安装一个低版本
tar zxf nginx-1.16.1.tar.gz
yum install gcc op