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 反向代理之 proxy_pass的实现
Mar 31 Servers
Nginx反向代理配置的全过程记录
Jun 22 Servers
Nginx虚拟主机的配置步骤过程全解
Mar 31 Servers
Vertica集成Apache Hudi重磅使用指南
Mar 31 Servers
CentOS下安装Jenkins的完整步骤
Apr 07 Servers
idea下配置tomcat避坑详解
Apr 12 Servers
Tomcat执行startup.bat出现闪退的原因及解决办法
Apr 20 Servers
使用 Docker Compose 构建复杂的多容器App
Apr 30 Servers
CentOS7环境下MySQL8常用命令小结
Jun 10 Servers
Win Server2016远程桌面如何允许多用户同时登录
Jun 10 Servers
Linux服务器离线安装 nginx的详细步骤
Jun 16 Servers
Windows10安装Apache2.4的方法步骤
Jun 25 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
2006/10/09 PHP
上传多个文件的PHP脚本
2006/11/26 PHP
PHP 程序员应该使用的10个组件
2009/10/31 PHP
PHP错误Allowed memory size of 67108864 bytes exhausted的3种解决办法
2014/07/28 PHP
为PHP5.4开启Zend OPCode缓存
2014/12/26 PHP
Yii实现多数据库主从读写分离的方法
2014/12/29 PHP
php导入模块文件分享
2015/03/17 PHP
thinkPHP交易详情查询功能详解
2016/12/02 PHP
JavaScript 学习笔记(七)字符串的连接
2009/12/31 Javascript
jQuery学习笔记(4)--Jquery中获取table中某列值的具体思路
2013/04/10 Javascript
JS动态添加与删除select中的Option对象(示例代码)
2013/12/20 Javascript
NodeJS学习笔记之MongoDB模块
2015/01/13 NodeJs
简单谈谈javascript代码复用模式
2015/01/28 Javascript
原生js实现查询天气小应用
2016/12/09 Javascript
AngularJs 常用的过滤器
2017/05/15 Javascript
Avalonjs双向数据绑定与监听的实例代码
2017/06/23 Javascript
JS中使用cavas截图网页并解决跨域及模糊问题
2018/11/13 Javascript
Javascript操作select控件代码实例
2020/02/14 Javascript
用Python编写一个简单的俄罗斯方块游戏的教程
2015/04/03 Python
python简单实现计算过期时间的方法
2015/06/09 Python
Python连接DB2数据库
2016/08/27 Python
python selenium 对浏览器标签页进行关闭和切换的方法
2018/05/21 Python
python实现贪吃蛇小游戏
2020/03/21 Python
Python如何在单元测试中给对象打补丁
2020/08/03 Python
Python+Xlwings 删除Excel的行和列
2020/12/19 Python
CSS3实现滚动条动画效果代码分享
2016/08/03 HTML / CSS
法国在线药房:DoctiPharma
2020/10/21 全球购物
教师节活动主持词
2014/04/02 职场文书
小学教师师德承诺书
2014/05/23 职场文书
中学学校门卫岗位职责
2014/08/15 职场文书
小学新教师个人总结
2015/02/05 职场文书
2015小学师德工作总结
2015/07/21 职场文书
医院病假条范文
2015/08/17 职场文书
JVM钩子函数的使用场景详解
2021/08/23 Java/Android
使用kubeadm命令行工具创建kubernetes集群
2022/03/31 Servers
mysql的单列多值存储实例详解
2022/04/05 MySQL