ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

Nginx-1.20升级步骤脚本

2021-07-18 19:01:01  阅读:284  来源: 互联网

标签:sbin tar nginx 步骤 xf gz echo 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

代码下载:点击

标签:sbin,tar,nginx,步骤,xf,gz,echo,Nginx,1.20
来源: https://blog.csdn.net/sinat_36255444/article/details/118880595

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有