Nginx 平滑升级(不需要关闭Nginx升级)
2021-12-30 23:02
756 查看
Nginx 平滑升级
对Nginx的版本进行更新,或者要增添新的模块,最简单的方法就是停止当前的Nginx服务,重新编译安装nginx,然后开启新的Nginx服务。但是这样会导致在一段时间内,用户是无法访问服务器,在大型系统中这是不可估量的灾难。为了解决这个问题,就需要用到Nginx服务器提供的
平滑升级功能。这个也是Nginx的一大特点,使用
平滑升级方式,就可以使Nginx在7*24小时不间断的提供服务了。
- 要求
Nginx的版本最开始使用的是Nginx-1.12.2,由于服务升级,需要将Nginx的版本升级到Nginx-1.16.1,要求Nginx不能中断提供服务。
为了应对上述的需求,这里提供两种解决方案:
方案一: 使用Nginx服务信号完成Nginx的升级
- 将1.12.2版本的sbin目录下的nginx进行备份;
# 进入到nginx安装的目录,默认安装则为/usr/local/nginx/sbin;否则到自己指定的安装目录中寻找nginx文件 $ cd /usr/local/nginx/sbin $ ls nginx $ mv nginx nginxold
- 将Nginx1.16.1安装目录编译后的objs目录下的nginx文件,拷贝到原来
/usr/local/nginx/sbin
目录下;
$ cd /opt/nginx-1.16.1/ $ ./configure $ make $ cd objs/ $ cp nginx /usr/local/nginx/sbin
- 发送信号USR2给Nginx的1.12.2版本对应的master进程
kill -USR2 `more /usr/local/logs/nginx.pid`
- 发送信号QUIT给Nginx的1.12.2版本对应的master进程
kill -QUIT `more /usr/local/logs/nginx.pid.oldbin`
- 查看是否更新成功
$ cd /usr/local/nginx/sbin $ ./nginx -v
方案二:使用Nginx安装目录的make命令完成升级
- 将1.12.2版本的sbin目录下的nginx进行备份;
$ cd /usr/local/nginx/sbin $ mv nginx nginxold
- 将1.16.1版本的Nginx1安装目录经编译后的objs目录下的nginx文件,拷贝到原来
/usr/local/nginx/sbin
(nginx安装目录)目录下;
$ cd /opt/nginx-1.16.1/ $ ./configure $ make $ cd /opt/nginx-1.16.1/objs $ cp nginx /usr/local/nginx/sbin
- 进入到安装目录,执行
make upgrade
$ cd /opt/nginx-1.16.1/ //使用 cd .. 返回上一层 也可以 $ make upgrade
- 查看是否更新成功
$ cd /usr/local/nginx/sbin$ ./nginx -v
在整个过程中,其实Nginx是一直对外提供服务的。并且当Nginx的服务器启动成功后,我们是可以通过浏览器进行直接访问的。
相关文章推荐
- Nginx的平滑重启,升级和关闭
- nginx从1.9.1不间断服务平滑升级到1.16.1
- nginx-1.9.1平滑升级到nginx-1.9.7
- Nginx平滑升级,并增加清除缓存模块
- nginx的平滑升级
- nginx平滑升级
- 详解nginx平滑升级的过程
- Nginx信号控制和平滑升级(二)
- nginx 平滑升级
- 启动Nginx、查看nginx进程、nginx帮助命令、Nginx平滑重启、Nginx服务器的升级
- Nginx在线服务状态下平滑升级或新增模块的详细操作记录
- Nginx的平滑重启和平滑升级
- nginx编译安装后对nginx进行平滑升级的方法
- Nginx 的启动、停止、平滑重启、信号控制和平滑升级
- 平滑升级Nginx到新版本v1.12.1修复Nginx最新漏洞CVE-2017-7529
- Centos7源码安装的nginx平滑升级
- Nginx的配置与部署(14)平滑升级你的Nginx
- nginx平滑升级与添加模块
- nginx怎么启动平滑重启关闭
- 平滑升级nginx