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 相关文章推荐
详解如何修改nginx的默认端口
Mar 31 Servers
Nginx 负载均衡是什么以及该如何配置
Mar 31 Servers
nginx proxy_cache 缓存配置详解
Mar 31 Servers
Nginx缓存设置案例详解
Sep 15 Servers
HDFS免重启挂载新磁盘
Apr 06 Servers
基于Apache Hudi在Google云构建数据湖平台的思路详解
Apr 07 Servers
Window server 2012 R2 AD域的组策略相关设置
Apr 28 Servers
Nginx开源可视化配置工具NginxConfig使用教程
Jun 21 Servers
腾讯云服务器部署前后分离项目之前端部署
Jun 28 Servers
Linux在两个服务器直接传文件的操作方法
Aug 05 Servers
SpringBoot前端后端分离之Nginx服务器下载安装过程
Aug 14 Servers
Windows server 2016服务器基本设置
Aug 14 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
将兴奋、喜悦和坎加斯带到戴安娜:亚马逊公主
2020/03/03 欧美动漫
php number_format() 函数通过千位分组来格式化数字的实现代码
2013/08/06 PHP
php模式设计之观察者模式应用实例分析
2019/09/25 PHP
laravel 执行迁移回滚示例
2019/10/23 PHP
Asp.net下使用Jquery Ajax传送和接收DataTable的代码
2010/09/12 Javascript
js 弹出菜单/窗口效果
2011/10/30 Javascript
JS网页播放声音实现代码兼容各种浏览器
2013/09/22 Javascript
解析URI与URL之间的区别与联系
2013/11/22 Javascript
js关于字符长度限制的问题示例探讨
2014/01/24 Javascript
javascript 控制input只允许输入的各种指定内容
2014/06/19 Javascript
javascript实现标签切换代码示例
2016/05/22 Javascript
使用Node.js给图片加水印的方法
2016/11/15 Javascript
利用n工具轻松管理Node.js的版本
2017/04/21 Javascript
关于JavaScript中forEach和each用法浅析
2017/07/27 Javascript
基于vue.js中关于下拉框的值默认及绑定问题
2018/08/22 Javascript
Bootstrap模态对话框用法简单示例
2018/08/31 Javascript
Vue使用自定义指令实现拖拽行为实例分析
2020/06/06 Javascript
[01:05:41]EG vs Optic Supermajor 败者组 BO3 第二场 6.6
2018/06/07 DOTA
Python回调函数用法实例详解
2015/07/02 Python
儿童编程python入门
2018/05/08 Python
python 实现矩阵填充0的例子
2019/11/29 Python
Python制作简易版小工具之计算天数的实现思路
2020/02/13 Python
Python3连接Mysql8.0遇到的问题及处理步骤
2020/02/17 Python
用Python制作mini翻译器的实现示例
2020/08/17 Python
使用HTML5 Canvas为图片填充颜色和纹理的教程
2016/03/21 HTML / CSS
GAZMAN官网:澳大利亚领先的男装品牌
2019/12/19 全球购物
C语言中一个结构不能包含指向自己的指针吗
2012/05/25 面试题
如何判断一段程序是由C 编译程序还是由C++编译程序编译的
2013/08/04 面试题
酒店管理自荐信
2013/10/23 职场文书
机电一体化毕业生求职信
2013/11/02 职场文书
应届生英语教师求职信
2013/11/05 职场文书
管道维修工岗位职责
2013/12/27 职场文书
特色冷饮店创业计划书
2014/01/28 职场文书
公务员平时考核实施方案
2014/03/11 职场文书
我的兄弟姐妹观后感
2015/06/15 职场文书
Python深度学习之Pytorch初步使用
2021/05/20 Python