每一款软件都存在更新换代,而我们更新软件的方式一般就是将低版本的卸载掉,然后安装新版本。但对于服务器软件来说,如果强行将服务器停止升级,这样原来在服务器上运行着的进程就会受到影响。如何解决这种问题呢?
可以通过平滑升级的方式解决这个问题,在平滑升级时
1. 在不停掉老进程的情况下,启动新进程。
2. 老进程负责处理仍然没有处理完的请求,但不再接受处理请求。
3. 新进程接受新请求。
4. 老进程处理完所有请求,关闭所有连接后,停止。
Nginx就支持平滑升级的方式,可以不间断提供服务。
我第一次安装Nginx的时候故意安装了一个低版本的,这次来测试一下平滑升级。
已安装版本: nginx-1.8.0
新版本Nginx: nginx-1.9.9
下载最新Nginx上传到服务器
① 解压
- 1
- 2
- 3
- 1
- 2
- 3
② 编译
- 1
- 2
- 3
- 1
- 2
- 3
注意千万不要执行 make install
,因为会将原来的Nginx文件全部替换,达不到平滑升级的效果。
③ 备份旧版本Nginx的可执行文件
- 1
- 2
- 3
- 4
- 5
- 6
- 1
- 2
- 3
- 4
- 5
- 6
④ 替换Nginx可执行文件
将新版本解压后文件夹objs里的nginx可执行文件,替换掉老版本sbin文件夹下的nginx可执行文件。
- 1
- 2
- 3
- 1
- 2
- 3
⑤ 查看是否升级成功
- 1
- 2
- 3
- 1
- 2
- 3
可以看到Nginx已经从1.8.0成功的升级到了1.9.9,平滑升级成功。越来越觉得Nginx这款软件的确强大。