Nginx-1.20升级步骤脚本

Nginx-1.20升级步骤脚本

分享个 Nginx-1.20升级脚本

注意下,脚本可能无法直接使用,需把编译包放到相应的下载地址,提供参考

先准备一些东西

这部分是需要注意的,提前下载这4类编译包

nginx-1.20.1.tar.gz,openssl-1.1.1k.tar.gz,pcre-8.44.tar.gz,zlib-1.2.11.tar.gz

这部分是需要看看修改的

#升级nginx-edit
mkdir /usr/local/src/nginx-2021 -p
cd /usr/local/src/nginx-2021
test -f nginx.tar.gz || wget http://mirrors.com.cn/redhat/0601/nginx.tar.gz
tar -xf nginx.tar.gz
tar -xf nginx-1.20.1.tar.gz
tar -xf openssl-1.1.1k.tar.gz
tar -xf pcre-8.44.tar.gz
tar -xf zlib-1.2.11.tar.gz

话不多说,直接上脚本吧

#!/bin/bash
#################################################################
######              update nginx scirpt                 #########
######                 Author:kyle                          #####
######               Date:2021/06/02                        #####
#################################################################

#检测nginx
nginx_sbin=`ps -ef | grep nginx | grep sbin | awk 'END{print $(NF-0)}'`
nginx_conf=`$nginx_sbin -t &> nginx_path && cat nginx_path | awk 'END{print $(NF-3)}'` && rm -f ./nginx_path
#未检测到定义默认路径
test -f $nginx_sbin || nginx_sbin="/usr/sbin/nginx"
test -d $nginx_conf || nginx_conf=`$nginx_sbin -t &> nginx_path && cat nginx_path | awk 'END{print $(NF-3)}'` && rm -f ./nginx_path

if [ -z $nginx_sbin ]; then
        echo "error,未检测到nginx"
        exit
fi
if [ -z $nginx_conf ]; then
        echo "error,未检测到nginx.conf配置文件"
        exit
fi

DATE=$(date +%Y%m%d)

#备份nginx
cp -a $nginx_sbin ${nginx_sbin}.bak${DATE}
cp -a $nginx_conf ${nginx_conf}.bak${DATE}

#升级nginx-edit
mkdir /usr/local/src/nginx-2021 -p
cd /usr/local/src/nginx-2021
test -f nginx.tar.gz || wget http://mirrors.com.cn/redhat/0601/nginx.tar.gz
tar -xf nginx.tar.gz
tar -xf nginx-1.20.1.tar.gz
tar -xf openssl-1.1.1k.tar.gz
tar -xf pcre-8.44.tar.gz
tar -xf zlib-1.2.11.tar.gz

#生成编译参数
prefix=`/usr/local/nginx/sbin/nginx -V &> nginx_tmp && cat nginx_tmp`
oldpcre=`for i in $prefix; do echo $i; done | grep with-pcre | sed 's/\//\\\\\//g'`
oldopenssl=`for i in $prefix; do echo $i; done | grep with-openssl | sed 's/\//\\\\\//g'`
oldzlib=`for i in $prefix; do echo $i; done | grep with-zlib | sed 's/\//\\\\\//g'`

pcre="--with-pcre=\/usr\/local\/src\/nginx-2021\/pcre-8.44"              #edit
openssl="--with-openssl=\/usr\/local\/src\/nginx-2021\/openssl-1.1.1k"   #edit
zlib="--with-zlib=\/usr\/local\/src\/nginx-2021\/zlib-1.2.11"            #edit

prefix=`cat nginx_tmp | grep configure | sed 's/configure arguments: //'`
echo $prefix > nginx_tmp
test -z $oldpcre || sed "s/${oldpcre}/$pcre/" ./nginx_tmp | test -z ${oldopenssl} || sed "s/${oldopenssl}/$openssl/" ./nginx_tmp | test -z ${oldzlib} || sed "s/${oldzlib}/$zlib/" ./nginx_tmp
prefix=`cat nginx_tmp` && rm -f ./nginx_tmp

#开始编译
cd /usr/local/src/nginx-2021/nginx-1.20.1              #edit
./configure $prefix
if [ $? -ne 0 ]; then
    echo "Configure nginx has encountered an error"
    exit
fi

make
if [ $? -ne 0 ]; then
    echo "make nginx has encountered an error"
    exit
fi

#替换sbin文件
objs/nginx -t
if [ $? -ne 0 ]; then
    echo "nginx update error"
    exit
else
    rm -f $nginx_sbin && cp -a objs/nginx $nginx_sbin
fi

$nginx_sbin -s reload
echo "#########################################################"
echo "################                        #################"
echo "################ nginx update sucess    ################"
echo "################                        #################"
echo "#########################################################"

echo "###############   nginx version     ############################################### "
echo "################################################################################### "
$nginx_sbin -V

代码下载:点击

上一篇:linux 实用命令参考


下一篇:docker常用操作