#下载新版本nginx
wget http://nginx.org/download/nginx-1.24.0.tar.gz
#解压并安装 tar xf nginx-1.24.0.tar.gz
cd nginx-1.24.0
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx \
--with-http_ssl_module \
--with-http_gzip_static_module \
--with-poll_module --with-file-aio \
--with-http_realip_module \
--with-http_addition_module \
--with-http_addition_module \
--with-http_random_index_module \
--with-http_stub_status_module \
--with-pcre --with-stream
make
#备份旧版本的nginx目录
cp /usr/local/nginx /usr/local/nginx_bak
#备份旧版本的二进制启动文件(做人留一线)
mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
#拷贝新版本编译好的二进制启动文件
cp nginx-1.24.0/objs/nginx /usr/local/nginx/sbin/
#查看当前进程
ps -aux | grep nginx
#USR2:启动新的主进程,实现热升级
kill -USR2 `cat /usr/local/nginx/logs/nginx.pid`
#再查看nginx进程,新旧nginx 进程都在
ps -aux | grep nginx
#查看nginx新版本的进程号
cat /usr/local/nginx/logs/nginx.pid
21416
#查看nginx旧版本的进程号
cat /usr/local/nginx/logs/nginx.pid.oldbin
8087
#平缓停止worker process
kill -WINCH 8087
#平缓停止Nginx服务
kill -QUIT 8087
#我们可以发现nginx低版本的进程都结束了
ps -ef |grep nginx
root 21416 1 0 15:58 ? 00:00:00 nginx: master process nginx
root 21417 21416 0 15:58 ? 00:00:00 nginx: worker process
root 21636 12873 0 16:15 pts/0 00:00:00 grep --color=auto nginx
#nginx.pid.oldbin文件也没有了
ll /usr/local/nginx/logs/
-rw-r--r-- 1 root root 8848003 1月 2 15:59 access.log
-rw-r--r-- 1 root root 2090148 1月 2 15:59 error.log
-rw-r--r-- 1 root root 6 1月 2 15:58 nginx.pid
#查看nginx升级后的版本
nginx -v
nginx version: nginx/1.24.0
标签:00,访问,--,root,平滑,nginx,usr,local
From: https://blog.51cto.com/chengdumeiyouni/9071190