Shell脚本一键安装Nginx服务自定义Nginx版本


Posted in Servers onMarch 20, 2022

经常安装Nginx服务,有时候要安装的版本不同就很烦,然后写了一个可以自定义Nginx版本的脚本(嗯,在朋友的帮助下,哈哈)。

话不多少,内容如下:

#!/bin/bash
#Nginx版本
ver=nginx-1.$2.$3
# 安装目录
in_dir="/app/$ver"
#软件存放目录
dl_dir="/server"
#最终运行目录
run_dir=/app/nginx
if [ ! -d $in_dir ];then
    mkdir -p $in_dir
fi
if [ ! -d $dl_dir ];then
    mkdir $dl_dir
fi
##安装nginx
function nginx_install (){
yum -y install gcc gcc-c++ pcre-devel zlib-devel openssl-devel 
if [ $? -eq 0 ]
then
    curl  "http://nginx.org/download/$ver.tar.gz" -o $dl_dir/$ver.tar.gz && \ 
    useradd -M -s /sbinlogin nginx  && \
    tar xf $dl_dir/$ver.tar.gz -C $dl_dir  && \
    cd $dl_dir/$ver
    ./configure  --prefix=$in_dir --user=nginx --group=nginx  && \ 
    make  && make install 
fi
}
function nginx_init (){
  ln -s $in_dir $run_dir
}
function nginx_start (){
  ps -ef |grep nginx |grep master
  if [ $? = 0  ];then
        echo "Nginx is Running."
  else
        if [ ! -e $run_dir/sbin/nginx ];then
        nginx_init
        fi
	$run_dir/sbin/nginx
        sleep 5
        ps -ef |grep nginx |grep master
        if [ $? = 0  ];then
        echo "Nginx Start successfully."
        else
        echo "Nginx Failed to Start."
	fi
  fi
}
function nginx_stop (){
	$run_dir/sbin/nginx -s quit	
        sleep 5
        ps -ef |grep nginx |grep master
        if [ $? != 0  ];then
	    echo "Nginx Stop successfully."
        else
            echo "Nginx Failed to Stop."
	fi
}
function nginx_reload (){
	$run_dir/sbin/nginx -s reload 
}
main(){
  nginx_install
  nginx_start
}
case $1 in 
install)
	nginx_install
	nginx_init
	nginx_start
	;;
start)
	nginx_start
	;;
stop)
	nginx_stop
	;;
restart)
	nginx_stop
	nginx_start
	;;
reload)
	nginx_reload
	;;
*)
	echo "使用方法"
	echo "$0 start|stop|restart|reload"	
	echo "安装方法"
	echo "$0 install <版本号> <小版本号>  例如:$0 install 19 3 下载的就是1.19.3版本 "
	;;
esac
#if [ $# = 0 ];then
#	echo  "使用 $0 后面加上小版本号进行部署:例如 $0 19 3 下载的就是1.19.3版本"
#else
#	echo "下载版本:1.$2.$3"
#	echo "安装目录:$in_dir"
#	echo "下载目录:$dl_dir"
#	echo "Nginx installation..." 
#        nginx_install
#        if [ $? != 0 ];then
##	echo "Ngins installation Failed."
#	else 
#        nginx_init
#        nginx_start
#        fi	
#fi

这个脚本可以实现用户自己选择想要安装的Nginx版本

比如我想装一个nginx-1.16.1版本,可以这样做:

sh install_nginx.sh install 16 1

当然,如果你开始并不知道使用方法,直接执行了脚本,没关系,有提示:

[root@localhost ~]# sh install_nginx.sh
使用方法
install_nginx.sh start|stop|restart|reload
安装方法
install_nginx.sh install <版本号> <小版本号>  例如:install_nginx.sh install 19 3 下载的就是1.19.3版本

瞧,不光告诉了你怎么使用它安装服务,还可以直接运行脚本进行管理当你刚安装完成的时候默认是启动的,你可以使用脚本进行关闭或重启:

[root@localhost ~]# sh install_nginx.sh stop
Nginx Stop successfully.
[root@localhost ~]# sh install_nginx.sh reload

然后你可以修改配置后进行开启:

[root@localhost ~]# sh install_nginx.sh start
root       4236      1  0 14:23 ?        00:00:00 nginx: master process /app/nginx/sbin/nginx
Nginx Start successfully.

查看它的状态,看它是否在运行:

[root@localhost ~]# ss -utpln | grep nginx
tcp    LISTEN     0      128       *:80                    *:*                   users:(("nginx",pid=4238,fd=6),("nginx",pid=4236,fd=6))

我们用浏览器来访问一下吧!

Shell脚本一键安装Nginx服务自定义Nginx版本

可以看到Nginx的欢迎页面,说明我们成功了!

以上就是Shell脚本一键安装Nginx服务自定义Nginx版本的详细内容,更多关于Shell脚本安装Nginx服务自定义Nginx的资料请关注三水点靠木其它相关文章!

Servers 相关文章推荐
解决xampp安装后Apache无法启动
Mar 21 Servers
Z-Order加速Hudi大规模数据集方案分析
Mar 31 Servers
CentOS7安装GlusterFS集群以及相关配置
Apr 12 Servers
nginx搭建NFS网络文件系统
Apr 14 Servers
在Windows Server 2012上安装 .NET Framework 3.5 所遇到的问题
Apr 29 Servers
如何开启Apache,Nginx和IIS服务器的GZIP压缩功能
Apr 29 Servers
winserver2019安装软件一直卡在应用程序正在为首次使用做准备
Jun 10 Servers
Win Server2016远程桌面如何允许多用户同时登录
Jun 10 Servers
安装harbor作为docker镜像仓库的问题
Jun 14 Servers
设置IIS Express并发数
Jul 07 Servers
ubuntu20.04虚拟机无法上网的问题及解决
Dec 24 Servers
nginx sticky实现基于cookie负载均衡示例详解
Dec 24 Servers
Nginx实现会话保持的两种方式
Mar 18 #Servers
Nginx实现负载均衡的项目实践
Mar 18 #Servers
Nginx中使用Lua脚本与图片的缩略图处理的实现
Mar 18 #Servers
nginx刷新页面出现404解决方案(亲测有效)
Mar 18 #Servers
Nginx+Windows搭建域名访问环境的操作方法
Mar 17 #Servers
nginx中封禁ip和允许内网ip访问的实现示例
Mar 17 #Servers
Apache Linkis 中间件架构及快速安装步骤
You might like
PHP语法速查表
2007/01/02 PHP
基于php缓存的详解
2013/05/15 PHP
解析Ubuntu下crontab命令的用法
2013/06/24 PHP
php单态设计模式(单例模式)实例
2014/11/18 PHP
PHP判断一个字符串是否是回文字符串的方法
2015/03/23 PHP
使用一个for循环将N*N的二维数组的所有值置1实现方法
2017/05/29 PHP
PHP attributes()函数讲解
2019/02/03 PHP
Laravel 中创建 Zip 压缩文件并提供下载的实现方法
2019/04/02 PHP
用jquery设置按钮的disabled属性的实现代码
2010/11/28 Javascript
JavaScript父子窗体间的调用方法
2015/03/31 Javascript
jquery实现的用户注册表单提示操作效果代码分享
2015/08/28 Javascript
解决vue-cli项目打包出现空白页和路径错误的问题
2018/09/04 Javascript
详解在vue-cli项目下简单使用mockjs模拟数据
2018/10/19 Javascript
深入学习JavaScript中的bom
2019/05/27 Javascript
node实现爬虫的几种简易方式
2019/08/22 Javascript
微信小程序返回上一页传参并刷新过程解析
2019/12/13 Javascript
js实现简单放大镜效果
2020/03/07 Javascript
微信小程序实现登录注册功能
2020/12/29 Javascript
python发送arp欺骗攻击代码分析
2014/01/16 Python
Python max内置函数详细介绍
2016/11/17 Python
python开启摄像头以及深度学习实现目标检测方法
2018/08/03 Python
Python GUI布局尺寸适配方法
2018/10/11 Python
python redis连接 有序集合去重的代码
2019/08/04 Python
Django中如何用xlwt生成表格的方法步骤
2021/01/31 Python
css3实现书本翻页效果的示例代码
2021/03/08 HTML / CSS
HTML5是什么 HTML5是什么意思 HTML5简介
2012/10/26 HTML / CSS
Hoka One One法国官网:美国专业跑鞋品牌
2018/12/29 全球购物
Easy Spirit官网:美国休闲鞋履中的代表品牌
2019/04/12 全球购物
美国在线医疗分销商:MedEx Supply
2020/02/04 全球购物
校三好学生主要事迹
2014/01/11 职场文书
经典导游欢迎词大全
2014/01/16 职场文书
文明生主要事迹
2014/05/25 职场文书
高职教师先进事迹材料
2014/08/24 职场文书
行政主管岗位职责
2015/02/03 职场文书
浅谈Redis的几个过期策略
2021/05/27 Redis
聊聊Lombok中的@Builder注解使用教程
2021/11/17 Java/Android