nginx自动部署脚本

Posted 冰魄秋雨

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx自动部署脚本相关的知识,希望对你有一定的参考价值。

需要下载脚本中需要的jar包nginx.pcre和zlib,自己也上传了一个自己部署的包
https://download.csdn.net/download/qq_17842663/10822976
因为csdn上传的资源必须要设置一个需要下载分,好像不能免费下载了,可以自己去官网下载。
脚本如下(nginx.sh):

#!/bin/sh

#/opt/hadoop
#            |________app
#            |          |_____hadoop安装路径
#            |_________data
#            |_________log
#################################################################

App_User=ice-app
App_Group=app

#配置文件
Nginx_Conf_File=nginx.conf
#启动/停止脚本
Nginx_Shell=nginx.sh
# 安装文件
Nginx_Install_Fill=nginx-1.15.7.tar.gz
# 应用主目录
Nginx_Home=/opt/nginx
# 应用安装目录
Nginx_App_Home=$Nginx_Home/app
#应用程序数据目录
Nginx_Data_Home=$Nginx_Home/data
#应用程序日志目录
Nginx_Log_Home=$Nginx_Home/log
#系统服务名称
Nginx_ServiceName=nginx
Nginx_Sbin=sbin
Nginx_Logs=logs
Nginx_Conf=conf
Nginx_Server=$Nginx_App_Home/support-files/$Nginx_Shell
#Nginx 导入导出文件目录
Nginx_Files=$Nginx_Home/files
#安装文件 其他版本请到官网下载对应的安装包
PCRE_Install_File_Name=pcre-8.42
Zlib_Install_File_Name=zlib-1.2.11
PCRE_Install_File=$PCRE_Install_File_Name.tar.gz
Zlib_Install_File=$Zlib_Install_File_Name.tar.gz
Nginx_Install_File_Name=nginx-1.15.7
Nginx_Install_File=$Nginx_Install_File_Name.tar.gz
Nginx_Zip_File=$Nginx_Install_File_Name.zip

# 启动Nginx
start(){
    echo $"Starting Nginx Under User: "$App_User
    $Nginx_App_Home/$Nginx_Install_File_Name/$Nginx_Sbin/$Nginx_ServiceName || return 2
}

# 停止Nginx
stop(){
    echo $"Stopping Nginx: "
    $Nginx_App_Home/$Nginx_Install_File_Name/$Nginx_Sbin/$Nginx_ServiceName -s stop || return 2
}

# 重启
reload(){
    echo $"reload Nginx: "
    $Nginx_App_Home/$Nginx_Install_File_Name/$Nginx_Sbin/$Nginx_ServiceName -s reload || return 2
}

# 解压nginx
install(){
    echo "install nginx"
    # 创建目录
    sudo mkdir -p $Nginx_Home $Nginx_Data_Home $Nginx_Log_Home $Nginx_App_Home
    # 解压文件
    sudo unzip $Nginx_Zip_File
    cd $Nginx_Install_File_Name
    sudo tar zxvf $PCRE_Install_File -C $Nginx_App_Home
    sudo tar zxvf $Zlib_Install_File -C $Nginx_App_Home
    sudo tar zxvf $Nginx_Install_File -C $Nginx_App_Home
    sudo cp $Nginx_Conf_File $Nginx_App_Home/
    cd ..
    # 移动App程序到App目录
    sudo cp $Nginx_Shell $Nginx_App_Home/$Nginx_Shell
    # 删除文件
    sudo rm -rf ./$Nginx_Install_File_Name
    sudo rm -rf ./$Zlib_Install_File
    sudo rm -rf ./$PCRE_Install_File
    sudo rm -rf ./$Nginx_Install_File
    
    # 安装必要文件
    sudo yum install -y gcc-c++
    sudo yum install -y g++
    sudo yum -y install openssl-devel
    # 安装nginx
    cd $Nginx_App_Home/$Nginx_Install_File_Name
    sudo ./configure  --with-pcre=$Nginx_App_Home/$PCRE_Install_File_Name --with-zlib=$Nginx_App_Home/$Zlib_Install_File_Name --prefix=$Nginx_App_Home/$Nginx_Install_File_Name --with-http_ssl_module
    sudo make && make install
    sudo mkdir -p $Nginx_App_Home/$Nginx_Install_File_Name/$Nginx_Logs
    echo "Installing Nginx...."
    # 创建用户
    egrep "^$App_Group" /etc/group >& /dev/null
    if [ $? -ne 0 ]
    then 
        echo "Creating Application Group:"$App_Group
        sudo groupadd -f $App_Group
    fi
    #create user if not exists
    egrep "^$App_User" /etc/passwd >& /dev/null
    if [ $? -ne 0 ]
    then
        echo "Creating Application User:"$App_User
        sudo useradd -g $App_Group -d /home/$App_User -m -s /bin/false -r $app_User
    fi
    echo "Set The Permission For User:"$App_User
    sudo chown -R $App_User $Nginx_Home
    sudo chmod -R o+w $Nginx_Home
    # 建立软连接
    sudo rm -rf /etc/init.d/$Nginx_ServiceName
    sudo ln -s $Nginx_App_Home/$Nginx_Shell /etc/init.d/$Nginx_ServiceName
    # 添加服务到开机自动启中
    sed -i ‘$Nginx_App_Home/$Nginx_Install_File_Name/sbin/nginx‘ /etc/rc.d/rc.local
    echo ‘$Nginx_App_Home/$Nginx_Install_File_Name/sbin/nginx‘ >> /etc/rc.d/rc.local
    # 默认没有执行的权限,需要授权 
    chmod +x /etc/rc.d/rc.local
    #将编写好的htpasswd密码文件和nginx.conf文件移动到conf配置目录下.
    sudo mv $Nginx_App_Home/$Nginx_Install_File_Name/$Nginx_Conf/$Nginx_Conf_File $Nginx_App_Home/$Nginx_Install_File_Name/$Nginx_Conf/$Nginx_Conf_File.default
    sudo mv $Nginx_App_Home/$Nginx_Conf_File $Nginx_App_Home/$Nginx_Install_File_Name/$Nginx_Conf/
    echo "Install Nginx 1.15.7 Success!"
}
# 卸载
uninstall(){
    echo "Uninstall The Service Named:"$Nginx_ServiceName
    # 移除开机自启动
    sed -i ‘/sbin/nginx/d‘ /etc/rc.d/rc.local
    # 删除软连接
    sudo rm -rf /etc/init.d/$Nginx_ServiceName
    # 删除文件
    sudo rm -rf $Nginx_App_Home
    echo "Uninstall Nginx Complete!"
}

case "$1" in
    start)
    start
    #set +x
    ;;
    stop)
    stop
    ;;
    status)
    sudo $Nginx_Server status
    ;;
    reload)
    reload
    ;;
    install)
    install
    ;;
    uninstall)
    stop
    uninstall
    ;;
    *)
    echo $"Usage: $0 {start|stop|restart|install|uninstall}"
    ;;
    esac
    exit

如上是脚本内容,有关键的注释,可以参考如上学习使用




以上是关于nginx自动部署脚本的主要内容,如果未能解决你的问题,请参考以下文章

linux下nginx自动部署脚本

linux下nginx自动部署脚本

使用本脚本可以自动批量完成中间节点环境的部署工作,包括:Nginx编译安装添加程序管理脚本设置开机启动反向代理配置证书分发添加iptables规则等

脚本实现一键部署Nginx软件(Web服务器):

Linux基础-Shell脚本

linux开发脚本自动部署及监控