- 前言
- 一、准备工作
- 1、下载需要更新的nginx版本,解压
- 2、编译并make(不进行make install)
- 二、升级方法一
- 1.备份安装目录下的nginx
- 2、复制objs目录下的nginx到当前sbin目录下
- 3、发送信号usr2给nginx老版本对应的进程
- 4、发送信号quit给nginx老版本的进程
- 5、查看是否升级成功
- 三、升级方法二
- 1.备份安装目录下的nginx
- 2、复制objs目录下的nginx到当前sbin目录下
- 3、进入到安装目录,执行make upgrade
- 4、查看是否升级成功
- 四、平滑升级失败因为ssl
- 总结
前言
在工作当中时常会遇到一些软件升级的需求,这次主要是记录使用nginx进行平滑升级(在不关闭nginx服务情况下)
需求将已安装的nginx-1.6.3升级为nginx-1.20.2
一、准备工作 1、下载需要更新的nginx版本,解压# 我是解压在本目录 如需指定目录解压添加 -C 指定目录 tar -zxvf nginx-1.20.2.tar.gz2、编译并make(不进行make install)
# 进入解压目录 cd ./nginx-1.20.2 # 进行配置 ./configure # 进行编译 make # 编译完成后可以看到一个objs文件夹,进入到objs文件夹,里面有个nginx二进制文件 cd ./objs二、升级方法一 1.备份安装目录下的nginx
cd /usr/local/nginx/sbin mv nginx nginx.bak2、复制objs目录下的nginx到当前sbin目录下
cp /opt/software/nginx/nginx-1.20.2/objs/nginx /usr/local/nginx/sbin/3、发送信号usr2给nginx老版本对应的进程
kill -user2 'more /usr/local/logs/nginx.pid'4、发送信号quit给nginx老版本的进程
kill -quit 'more /usr/local/nginx/logs/nginx.pid.oldbin'5、查看是否升级成功
./nginx -v三、升级方法二 1.备份安装目录下的nginx
cd /usr/local/nginx/sbin mv nginx nginx.bak2、复制objs目录下的nginx到当前sbin目录下
cp /opt/software/nginx/nginx-1.20.2/objs/nginx /usr/local/nginx/sbin/3、进入到安装目录,执行make upgrade
make upgrade
结果:
./nginx -v四、平滑升级失败因为ssl
报错:nginx: [emerg] https protocol requires SSL support in /usr/local/nginx/conf/nginx.conf:86
nginx: configuration file /usr/local/nginx/conf/nginx.conf test failed
安装ssl_module然后执行前面的操作
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module总结
第二种方式更加简介,其实原理和第一种方式一样



