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
uwsgi+nginx代理Django无法访问静态资源的解决
May 10 Servers
Nginx实现高可用集群构建(Keepalived+Haproxy+Nginx)
May 27 Servers
制作能在nginx和IIS中使用的ssl证书
Jun 21 Servers
Apache POI的基本使用详解
Nov 07 Servers
Apache Hudi数据布局黑科技降低一半查询时间
Mar 31 Servers
使用Docker容器部署rocketmq单机的全过程
Apr 03 Servers
OpenStack虚拟机快照和增量备份实现方法
Apr 04 Servers
tomcat下部署jenkins的方法
May 06 Servers
nginx实现多geoserver服务的负载均衡
May 15 Servers
教你nginx跳转配置的四种方式
Jul 07 Servers
服务器nginx权限被拒绝解决案例
Sep 23 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下使用无限生命期Session的方法
2007/03/16 PHP
php的XML文件解释类应用实例
2014/09/22 PHP
PHP中绘制图像的一些函数总结
2014/11/19 PHP
PHP读取XML格式文件的方法总结
2017/02/27 PHP
javascript 多种搜索引擎集成的页面实现代码
2010/01/02 Javascript
基于jquery创建的一个图片、视频缓冲的效果样式插件
2012/08/28 Javascript
HTML5之lang属性与dir属性的详解
2013/06/19 Javascript
巧用replace将文字表情替换为图片
2014/04/17 Javascript
jQuery三级下拉列表导航菜单代码分享
2020/04/15 Javascript
解析ajaxFileUpload 异步上传文件简单使用
2016/12/30 Javascript
微信小程序 限制1M的瘦身技巧与方法详解
2017/01/06 Javascript
javascript函数的四种调用模式
2017/01/08 Javascript
深入理解Vue2.x的虚拟DOM diff原理
2017/09/27 Javascript
使用node打造自己的命令行工具方法教程
2018/03/26 Javascript
vue实现图片上传预览功能
2019/12/23 Javascript
JS数组的常用10种方法详解
2020/05/08 Javascript
js 数组当前行添加数据方法详解
2020/07/28 Javascript
JavaScript快速调试的两个技巧
2020/11/04 Javascript
python计算最小优先级队列代码分享
2013/12/18 Python
python操作xml文件详细介绍
2014/06/09 Python
Python简单实现查找一个字符串中最长不重复子串的方法
2018/03/26 Python
python 不以科学计数法输出的方法
2018/07/16 Python
django用户登录和注销的实现方法
2018/07/16 Python
在Python中,不用while和for循环遍历列表的实例
2019/02/20 Python
Django框架实现的普通登录案例【使用POST方法】
2019/05/15 Python
Flask框架模板渲染操作简单示例
2019/07/31 Python
Python数组并集交集补集代码实例
2020/02/18 Python
Python 实现自动完成A4标签排版打印功能
2020/04/09 Python
Python使用socketServer包搭建简易服务器过程详解
2020/06/12 Python
HTML5注册表单的自动聚焦与占位文本示例代码
2013/07/19 HTML / CSS
Sunglasses Shop丹麦:欧洲第一的太阳镜在线销售网站
2017/10/22 全球购物
泰国排名第一的家居用品中心:HomePro
2020/11/18 全球购物
营业员个人总结的自我评价
2013/10/25 职场文书
2015年国庆节演讲稿范文
2015/07/30 职场文书
八年级数学教学反思
2016/02/17 职场文书
Go语言grpc和protobuf
2022/04/13 Golang