Nginx平滑升级

Nginx平滑升级

nginx版本过低【1.12】

cd /usr/local/

wget http://nginx.org/download/nginx-1.20.1.tar.gz

tar xf nginx-1.20.1.tar.gz 

rm -f nginx-1.20.1.tar.gz

cd nginx-1.20.1/

#安装更新/依赖
yum -y install redhat-rpm-config.noarch  pcre-devel openssl openssl-devel  libxslt-devel   gd-devel   perl-ExtUtils-Embed

#编译
./configure --prefix=/usr/share/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --http-client-body-temp-path=/var/lib/nginx/tmp/client_body --http-proxy-temp-path=/var/lib/nginx/tmp/proxy --http-fastcgi-temp-path=/var/lib/nginx/tmp/fastcgi --http-uwsgi-temp-path=/var/lib/nginx/tmp/uwsgi --http-scgi-temp-path=/var/lib/nginx/tmp/scgi --pid-path=/run/nginx.pid --lock-path=/run/lock/subsys/nginx --user=nginx --group=nginx 


#检测
echo $?

#为0,则继续
make

#检测
echo $?

#为0,则继续,-->替换旧的nginx二进制文件
mv /usr/sbin/nginx /usr/sbin/nginx.old
rsync -av objs/nginx /usr/sbin/

#向旧的Nginx的Master进程发送USR2信号
kill -USR2 UID号(master的pid进程号)
 
#向旧的master进程发送WINCH信号,旧的worker子进程优 雅退出
kill -WINCH  UID号
 
#向旧的master进程发送QUIT信号,旧的master进程就退出了
kill -QUIT UID号


此时会有一个报错
nginx: [emerg] module "/usr/lib64/nginx/modules/ngx_http_geoip_module.so" version 1012002 instead of 1014000 in /usr/share/nginx/modules/mod-http-geoip.conf:1
#原因是之前的旧模块不适用新版本

#解决
vim /etc/yum.repos.d/nginx.repo

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1

rsync -av  /etc/nginx  /etc/nginx.old


yum remove nginx-mod*

yum install nginx-module-*

#启动
nginx
posted @ 2021-08-11 09:50  Ming·go  阅读(127)  评论(0)    收藏  举报