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
Filebeat 采集 Nginx 日志的方法
Mar 31 Servers
Nginx进程管理和重载原理详解
Apr 22 Servers
nginx反向代理配置去除前缀案例教程
Jul 26 Servers
Apache POI的基本使用详解
Nov 07 Servers
Nginx下SSL证书安装部署步骤介绍
Dec 06 Servers
阿里云k8s服务升级时502错误 springboot项目应用
Apr 09 Servers
Docker官方工具docker-registry案例演示
Apr 13 Servers
Windows server 2012 配置Telnet以及用法详解
Apr 28 Servers
搭建Yolov5服务器
Apr 30 Servers
tomcat默认最大连接数及相关调整方法
May 06 Servers
Apache SeaTunnel实现 非CDC数据抽取
May 20 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
《猛禽小队》:DC宇宙的又一超级大烂片
2020/04/09 欧美动漫
生成静态页面的php函数,php爱好者站推荐
2007/03/19 PHP
php数据库连接时容易出错的特殊符号问题
2010/09/01 PHP
php数组函数序列之rsort() - 对数组的元素值进行降序排序
2011/11/02 PHP
9段PHP实用功能的代码推荐
2014/10/14 PHP
CodeIgniter表单验证方法实例详解
2016/03/03 PHP
thinkphp5.1 框架导入/导出excel文件操作示例
2020/05/25 PHP
跨浏览器开发经验总结(四) 怎么写入剪贴板
2010/05/13 Javascript
javascript动态改变img的src属性图片不显示的解决方法
2010/10/20 Javascript
简单方法判断JavaScript对象为null或者属性为空
2014/09/26 Javascript
javascript实现瀑布流自适应遇到的问题及解决方案
2015/01/28 Javascript
基于JavaScript实现弹出框效果
2016/02/19 Javascript
多功能jQuery树插件zTree实现权限列表简单实例
2016/07/12 Javascript
JQ选择器_选择同类元素的第N个子元素的实现方法
2016/09/08 Javascript
js图片延迟加载(Lazyload)三种实现方式
2017/03/01 Javascript
深入浅析Node.js单线程模型
2017/07/10 Javascript
dropload.js插件下拉刷新和上拉加载使用详解
2017/10/20 Javascript
vue 中directive功能的简单实现
2018/01/05 Javascript
Vue触发式全局组件构建的方法
2018/11/28 Javascript
微信小程序五子棋游戏AI实现方法【附demo源码下载】
2019/02/20 Javascript
JavaScript学习教程之cookie与webstorage
2019/06/23 Javascript
JavaScript 斐波那契数列 倒序输出 输出100以内的质数代码实例
2019/09/11 Javascript
javascript刷新父页面方法汇总详解
2019/10/10 Javascript
uniapp微信小程序实现一个页面多个倒计时
2020/11/01 Javascript
[56:13]DOTA2-DPC中国联赛定级赛 LBZS vs Phoenix BO3第一场 1月10日
2021/03/11 DOTA
python根据时间生成mongodb的ObjectId的方法
2015/03/13 Python
详解Python中for循环是如何工作的
2017/06/30 Python
软件工程师面试题
2012/06/25 面试题
村委会贫困证明
2014/01/14 职场文书
中学生家长评语大全
2014/04/16 职场文书
小城镇建设汇报材料
2014/08/16 职场文书
2014年药房工作总结
2014/11/22 职场文书
先进个人事迹材料
2014/12/29 职场文书
2016年小学生迎国庆广播稿
2015/12/18 职场文书
远程教育培训心得体会
2016/01/09 职场文书
Mysql中一千万条数据怎么快速查询
2021/12/06 MySQL