1. 程式人生 > >nginx自動部署指令碼

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

如上是指令碼內容,有關鍵的註釋,可以參考如上學習使用