需要下载脚本中需要的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自动部署脚本的更多相关文章

  1. SHELL编写NGINX自动部署脚本

    1.功能描述 1. 安装支持包,从软件源下载自定义的NGINX包,创建NGINX用户和用户组. 2. 安装并初始化NGINX配置. 3. 运行NGINX并检测运行状态. 2.实现 源码如下: #!/b ...

  2. mysql 自动备份和nginx自动安装脚本

    一.自动备份Mysql脚本: 如下脚本为mysql自动备份脚本,仅供参考,可以根据实际情况修改. #!/bin/sh #auto backup mysql #wugk #Define PATH定义变量 ...

  3. 做了一个简易的git 代码自动部署脚本

    做了一个简易的git 代码自动部署脚本 http://my.oschina.net/caomenglong/blog/472665 发表于2个月前(2015-06-30 21:08)   阅读(200 ...

  4. 吻逗死(windows)系统下自动部署脚本(for java spring*)及linux命令行工具

    转载请注明出处:https://www.cnblogs.com/funnyzpc/p/10051647.html (^^)(^^)自動部署腳本原本在上個公司就在使用,由於近期同事需要手動部署一個Spr ...

  5. Tomcat项目自动部署脚本

    一般情况下使用的Linux环境都是加固的,root路径只有超级管理员权限才能进入.我们新建一个自己的用户,在/home下会有一个用户目录,传输war包都放在这个目录下,此时不动webapps文件下的内 ...

  6. centos7 在docker swarm中运行Jenkins,利用gitlab的webhook触发自动部署脚本

    1.宿主机中创建目录 mkdir -p /jenkins_home 2.编辑compose文件,文件名jenkins.yml version: '3.4' services: jenkins-upgr ...

  7. nginx离线部署脚本

    #! /bin/bashbasepath=$(cd `dirname $0`; pwd)nginx_path=/usr/localfile_name=nginxecho "--------- ...

  8. Nginx自动安装脚本

    添加一个install_nginx.sh脚本 版本一:(以下脚本为在线自动化安装) #!/bin/bash mkdir /soft cd /soft wget -c http://nginx.org/ ...

  9. linux 项目自动部署脚本

    1.使用maven获取源码部署,并可替换配置文件(金融数据分析平台) #!/bin/bash#设置变量cd /home#停止tomcatecho "开始停止tomcat..." p ...

随机推荐

  1. maven中pom.xml中的scope讲解

    一.compile:编译范围compile是默认的范围:如果没有提供一个范围,编译范围依赖在所有的classpath 中可用,同时它们也会被打包.而且这些dependency会传递到依赖的项目中. 二 ...

  2. VC++下的Unicode编程

    ASCII是用来表示英文字符的一种编码规范.每个ASCII字符占用1个字节,因此,ASCII编码可以表示的最大字符数是255(00H—FFH). 其实,英文字符并没有那么多,一般只用前128个(00H ...

  3. jquery实现简单抽奖功能

    一直纠结要怎么用jquery实现抽奖功能,看别人很多都是用flash制作的,找了很多资料,最终找到一个比较适合需求的,我做了些许调整,以下是代码展示(复制下来可以直接使用). 先上图:

  4. json的两种格式

    JSON: JavaScript Object Notation      (JavaScript 对象表示法) JSON 是存储和交换文本信息的语法.类似 XML. 一.JSON对象:JSONObj ...

  5. coffee主题美化内容概要

    1.具备自动生浮动标题目录(可隐藏) 2.页首目录概要 3.主标题有明显的标志背景颜色,二级标题缩进合适 4.一级.二级标题下图片缩进合适 5.博客签名 6.背景音乐列表 7.打赏 8.联系方式(QQ ...

  6. 【OCP|052】iZ0-052最新题库及答案整理-第9题

    9.Which is true about the Automatic Diagnostic Repository (ADR)? A) It includes diagnostic data for ...

  7. “全栈2019”Java第四十二章:静态代码块与初始化顺序

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  8. [agc016b]Colorful Hats 分类讨论

    Description ​ 有n个人,每个人都戴着一顶帽子.当然,帽子有不同的颜色. ​ 现在,每个人都告诉你,他看到的所有其他人的帽子共有多少种颜色,请问你有没有符合所有人的描述的情况. Input ...

  9. 洛谷P2462 [SDOI2007]游戏(哈希+最长路)

    题面 传送门 题解 我们把字符的出现次数哈希起来,然后把每个点向能在它之后的点连边.那么这显然是一个\(DAG\),直接求最长路就行了 //minamoto #include<bits/stdc ...

  10. redis存储的数据类型

    key-velue数据结构存储 key   只能是字符串 value 有5种数据leixing. 字符串 string 哈希 hash 列表 list 集合 set 有序集合 zset