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站点配置SSL强制跳转443
Mar 09 Servers
Nginx的rewrite模块详解
Mar 31 Servers
Nginx服务器添加Systemd自定义服务过程解析
Mar 31 Servers
Nginx URL重写rewrite机制原理及使用实例
Apr 01 Servers
nginx实现动静分离的方法示例
Nov 07 Servers
使用 Apache Dubbo 实现远程通信(微服务架构)
Feb 12 Servers
Apache Hudi数据布局黑科技降低一半查询时间
Mar 31 Servers
Apache Hudi的多版本清理服务彻底讲解
Mar 31 Servers
Linux中文件的基本属性介绍
Jun 01 Servers
教你如何用cmd快速登录服务器
Jun 10 Servers
利用Apache Common将java对象池化的问题
Jun 16 Servers
超越Nginx的Web服务器caddy优雅用法
Jun 21 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
水质对咖图啡风味的影响具体有哪些
2021/03/03 冲泡冲煮
一个显示天气预报的程序
2006/10/09 PHP
php join函数应用
2011/05/04 PHP
php若干单维数组遍历方法的比较
2011/09/20 PHP
php操纵mysqli数据库的实现方法
2016/09/18 PHP
PHP使用XMLWriter读写xml文件操作详解
2018/07/31 PHP
php实现分页功能的详细实例方法
2019/09/29 PHP
让IE8支持DOM 2(不用框架!)
2009/12/31 Javascript
javascript事件冒泡详解和捕获、阻止方法
2014/04/12 Javascript
NODE.JS加密模块CRYPTO常用方法介绍
2014/06/05 Javascript
JS实现动画兼容性的transition和transform实例分析
2016/12/13 Javascript
vue.js实现单选框、复选框和下拉框示例
2017/07/18 Javascript
jQuery中常用动画效果函数知识点整理
2018/08/19 jQuery
JavaScript变量提升和严格模式实例分析
2019/01/27 Javascript
jQuery实现经典的网页3D轮播图封装功能【附源码下载】
2019/02/15 jQuery
uni-app自定义导航栏按钮|uniapp仿微信顶部导航条功能
2019/11/12 Javascript
基于PHP pthreads实现多线程代码实例
2020/06/24 Javascript
vue结合el-upload实现腾讯云视频上传功能
2020/07/01 Javascript
OpenLayers加载缩放控件使用方法详解
2020/09/25 Javascript
python网络编程学习笔记(一)
2014/06/09 Python
Python中让MySQL查询结果返回字典类型的方法
2014/08/22 Python
利用Python读取文件的四种不同方法比对
2017/05/18 Python
速记Python布尔值
2017/11/09 Python
python实现zabbix发送短信脚本
2018/09/17 Python
Python实现微信自动好友验证,自动回复,发送群聊链接方法
2019/02/21 Python
python pandas模块基础学习详解
2019/07/03 Python
django基于restframework的CBV封装详解
2019/08/08 Python
英国No.1体育用品零售商:SportsDirect.com
2019/10/16 全球购物
俄罗斯品牌服装在线商店:VIPAVENUE
2020/08/10 全球购物
俄罗斯卫浴采暖及维修用品超级市场:Dkrussia
2020/05/12 全球购物
手术室护士长竞聘书
2014/03/31 职场文书
关于读书的演讲稿800字
2014/08/27 职场文书
副乡长群众路线教育实践活动个人对照检查材料
2014/09/19 职场文书
2014年计划生育协会工作总结
2014/11/14 职场文书
幼儿体育课教学反思
2016/02/16 职场文书
python创建字典及相关管理操作
2022/04/13 Python