nginx平滑升级和故障回退
ngnix的进程分为两类,一类是master主进程,一类是worker工作进程。平滑升级首先会替换master进程,同时替换的master是与老版本的worker兼容的。下一步,就是保持还有连接的worker进程,待其老去再进行替换。实验是将1.18.0升级为1.19.1
安装依赖
yum install -y gcc gcc-c++ pcre pcre-devel zlib zlib-devel make automake autoconf libtool
安装nginx1.18.0
cd /root wget http://nginx.org/download/nginx-1.18.0.tar.gz tar zxf nginx-1.18.0.tar.gz cd nginx-1.18.0/ ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_flv_module --with-http_gzip_static_module make make install
查看版本
/usr/local/nginx/sbin/nginx -V
备份原nginx二进制文件
mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old
启动nginx并测试
/usr/local/nginx/sbin/nginx yum install elinks elinks 127.0.0.1
升级高版本nginx1.19.1
cd /root wget http://nginx.org/download/nginx-1.19.1.tar.gz tar zxf nginx-1.19.1.tar.gz cd nginx-1.19.1/ ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_flv_module --with-http_gzip_static_module make #不需要执行make install,否则会覆盖原来的版本从而产生主程失效
替换二进制文件
cp /root/nginx-1.19.1/objs/nginx /usr/local/nginx/sbin/ make upgrade
查看版本
/usr/local/nginx/sbin/nginx -V
版本回退
ls /usr/local/nginx/sbin/ cp /usr/local/nginx/sbin/nginx.old /usr/local/nginx/sbin/nginx -f kill -HUP 3099 nginx #将在不重载配置文件的情况下启动旧版的worker进程
本站所有文章均可随意转载,转载时请保留原文链接及作者。