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 相关文章推荐
Linux安装Nginx步骤详解
Mar 31 Servers
JVM上高性能数据格式库包Apache Arrow入门和架构详解(Gkatziouras)
May 26 Servers
nginx+lua单机上万并发的实现
May 31 Servers
nginx反向代理配置去除前缀案例教程
Jul 26 Servers
Windows下用Nginx配置https服务器及反向代理的问题
Sep 25 Servers
Nginx动静分离配置实现与说明
Apr 07 Servers
windows server 2012安装FTP并配置被动模式指定开放端口
Jun 10 Servers
shell进度条追踪指令执行时间的场景分析
Jun 16 Servers
nginx七层负载均衡配置详解
Jul 15 Servers
Windows7下FTP搭建图文教程
Aug 05 Servers
Apache SkyWalking 监控 MySQL Server 实战解析
Sep 23 Servers
CentOS7设置ssh服务以及端口修改方式
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开发过程中常用函数收藏
2009/12/14 PHP
PHP中去除换行解决办法小结(PHP_EOL)
2011/11/27 PHP
php实现utf-8和GB2312编码相互转换函数代码
2013/02/07 PHP
IIS6.0 开启Gzip方法及PHP Gzip函数分享
2014/06/08 PHP
jquery live()重复绑定的解决方法介绍
2014/01/03 Javascript
node.js中的path.extname方法使用说明
2014/12/09 Javascript
JS点击链接后慢慢展开隐藏着图片的方法
2015/02/17 Javascript
基于jQuery实现带动画效果超炫酷的弹出对话框(附源码下载)
2016/02/22 Javascript
jQuery实现内容定时切换效果完整实例
2016/04/06 Javascript
js实现为a标签添加事件的方法(使用闭包循环)
2016/08/02 Javascript
Jquery通过ajax请求NodeJS返回json数据实例
2016/11/08 NodeJs
package.json文件配置详解
2017/06/15 Javascript
Vue 页面状态保持页面间数据传输的一种方法(推荐)
2018/11/01 Javascript
Vue利用History记录上一页面的数据方法实例
2018/11/02 Javascript
微信小程序中使用Async-await方法异步请求变为同步请求方法
2019/03/28 Javascript
Vue+Element实现网页版个人简历系统(推荐)
2019/12/31 Javascript
使用Vue实现简单计算器
2020/02/25 Javascript
微信小程序后端无法保持session的原因及解决办法问题
2020/03/20 Javascript
解读Python中degrees()方法的使用
2015/05/18 Python
python生成器表达式和列表解析
2016/03/10 Python
教你用Python脚本快速为iOS10生成图标和截屏
2016/09/22 Python
Python中Numpy ndarray的使用详解
2019/05/24 Python
对python中return与yield的区别详解
2020/03/12 Python
keras 两种训练模型方式详解fit和fit_generator(节省内存)
2020/07/03 Python
Web前端绘制0.5像素的几种方法
2017/08/11 HTML / CSS
css3实现信纸/同学录效果的示例代码
2018/12/11 HTML / CSS
HTML5中的nav标签学习笔记
2016/06/24 HTML / CSS
德国滑雪和户外用品网上商店:XSPO
2019/10/30 全球购物
普师专业个人自荐信范文
2013/11/26 职场文书
最新的互联网创业计划书
2014/01/10 职场文书
中学生期中自我鉴定
2014/04/20 职场文书
优秀班集体先进事迹材料
2014/05/28 职场文书
深入开展党的群众路线教育实践活动心得体会
2014/11/05 职场文书
2014年调度员工作总结
2014/11/19 职场文书
2015年元旦文艺晚会总结(学院)
2014/11/28 职场文书
2014年度工作总结报告
2014/12/15 职场文书