zoukankan      html  css  js  c++  java
  • 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
    

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

  • 相关阅读:
    Delphi中的进制转换
    delphi inttohex 整型到十六进制
    delphi将程序最小化至右下角
    sql server 本地复制订阅 实现数据库服务器 读写分离
    我在DBGridEh增加一栏复选框及对应操作的解决方案
    Application.CreateForm()和TForm.Create()创建的窗体有什么区别么?二者在使用上各有什么技巧?(50分)
    学用 TStringGrid [6]
    SQL Server中一些有用的日期sql语句
    MVC中的@Html.DisplayFor等方法如何控制日期的显示格式(转)
    ASP.NET MVC自定义AuthorizeAttribute篇知识点讲解—登录限制
  • 原文地址:https://www.cnblogs.com/skyice/p/10080672.html
Copyright © 2011-2022 走看看