用于升级nginx

用于升级nginx
升级步骤:
备服:此方法仅限于无用户使用时,停机操作
1.下载最新版本nginx
2.解压到对应地址
3.编译+make(不要make install)
4.备份老的nginx二进制文件
5.将新的二进制文件拷贝到老的nginx目录xia
6.重启nginx
 
涉及到的变量:
1.最新nginx下载地址
2.下载路径(nginx_path=/usr/local/)
3.解压路径(2.3用一个路径)
4.编译,make路径(下载路径+nginx目录)
5.老的nginx二进制文件路径(下载路径+nginx+sbin)
6.新的nginx二进制文件路径(编译路径+objs)
 
脚本:
#!/bin/bash
#用法:"./update_nginx.sh  最新nginx的官网url链接"
#说明:下载nginx原文件,编译后把新的二进制nginx文件拷贝到老的目录下,拷贝前备份,用于升级nginx,之后可以直接重启升级,也可以采用平滑模式升级
nginx_url=$1
nginx_path='/usr/local/'
file_name=`echo $nginx_url|awk -F/ '{print$5}'|awk -F".t"  '{print$1}'`
#获取编译模块的参数
nginx -V &>$nginx_path/temp
arguments=`cat $nginx_path/temp|awk -F"arguments:" '{print$2}'|grep -v ^$`
#arguments="--prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_stub_status_module"
#官网下载对应软件包,有就跳过
[ -f ${nginx_path}${file_name}.tar.gz ] || `which wget` $nginx_url -P $nginx_path
#解压软件包
`which tar`  zxf ${nginx_path}${file_name}.tar.gz -C $nginx_path
#编译+make(不要make install)
cd ${nginx_path}${file_name}/
./configure  $arguments
make
#备份原始二进制nginx
cd  ${nginx_path}nginx/sbin/
mv nginx   nginx$(date +%Y%m%d)
#拷贝新的二进制nginx到对应目录
cp ${nginx_path}${file_name}/objs/nginx   ${nginx_path}nginx/sbin/
 
 
原文地址:https://www.cnblogs.com/szy2018/p/13830388.html