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 相关文章推荐
Apache Calcite 实现方言转换的代码
Apr 24 Servers
教你利用Nginx 服务搭建子域环境提升二维地图加载性能的步骤
Sep 25 Servers
Apache Pulsar集群搭建部署详细过程
Feb 12 Servers
Z-Order加速Hudi大规模数据集方案分析
Mar 31 Servers
基于Apache Hudi在Google云构建数据湖平台的思路详解
Apr 07 Servers
在容器中使用nginx搭建上传下载服务器
May 11 Servers
Nginx 配置 HTTPS的详细过程
May 30 Servers
ubuntu下常用apt命令介绍
Jun 05 Servers
本地搭建minio文件服务器(使用bat脚本启动)的方法
Jul 15 Servers
windows server2016安装oracle 11g的图文教程
Jul 15 Servers
Flink 侧流输出源码示例解析
Sep 23 Servers
keepalived + nginx 实现高可用方案
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利用func_get_args和func_num_args函数实现函数重载实例
2014/11/12 PHP
WordPress中is_singular()函数简介
2015/02/05 PHP
javascript+php实现根据用户时区显示当地时间的方法
2015/03/11 PHP
php实现html标签闭合检测与修复方法
2015/07/09 PHP
使用Git实现Laravel项目的自动化部署
2019/11/24 PHP
Jquery进度条插件 Progress Bar小问题解决
2011/07/12 Javascript
40款非常有用的 jQuery 插件推荐(系列一)
2011/12/21 Javascript
浅谈javascript中基本包装类型
2015/06/03 Javascript
JavaScript判断浏览器及其版本信息
2017/01/20 Javascript
JQuery页面随滚动条动态加载效果的简单实现(推荐)
2017/02/08 Javascript
AngularJS 验证码60秒倒计时功能的实现
2017/06/05 Javascript
vue2.0 自定义组件的方法(vue组件的封装)
2018/06/05 Javascript
浅析vue插槽和作用域插槽的理解
2019/04/22 Javascript
详解vue中的父子传值双向绑定及数据更新问题
2019/06/13 Javascript
js实现星星海特效的示例
2020/09/28 Javascript
[45:46]2014 DOTA2国际邀请赛中国区预选赛5.21 HGT VS DT
2014/05/23 DOTA
Python守护进程(daemon)代码实例
2015/03/06 Python
python中os和sys模块的区别与常用方法总结
2017/11/14 Python
python通过百度地图API获取某地址的经纬度详解
2018/01/28 Python
windows下安装python的C扩展编译环境(解决Unable to find vcvarsall.bat)
2018/02/21 Python
Python实现计算圆周率π的值到任意位的方法示例
2018/05/08 Python
Python使用add_subplot与subplot画子图操作示例
2018/06/01 Python
CentOS下Python3的安装及创建虚拟环境的方法
2018/11/28 Python
Python基于滑动平均思想实现缺失数据填充的方法
2019/02/21 Python
python3.6环境安装+pip环境配置教程图文详解
2019/06/20 Python
python判断单向链表是否包括环,若包含则计算环入口的节点实例分析
2019/10/23 Python
Python实现AI自动抠图实例解析
2020/03/05 Python
酒吧员工的岗位职责
2013/11/26 职场文书
演讲比赛获奖感言
2014/02/02 职场文书
超市理货员岗位职责
2014/07/04 职场文书
群众路线教育查摆剖析材料
2014/10/10 职场文书
辩护词格式
2015/05/22 职场文书
Python使用scapy模块发包收包
2021/05/07 Python
Redis 中使用 list,streams,pub/sub 几种方式实现消息队列的问题
2022/03/16 Redis
vue实现可以快进后退的跑马灯组件
2022/04/08 Vue.js
Python 绘制多因子柱状图
2022/05/11 Python