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
代码下载:点击