Shell脚本一键安装Nginx服务自定义Nginx版本

经常安装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))

我们用浏览器来访问一下吧!

可以看到Nginx的欢迎页面,说明我们成功了!

以上就是Shell脚本一键安装Nginx服务自定义Nginx版本的详细内容,更多关于Shell脚本安装Nginx服务自定义Nginx的资料请关注我们其它相关文章!

(0)

相关推荐

  • centos/rhel下实现nginx自启动脚本实例

    通常在centos.rhel的OS下,我们大多是通过chkconfig来管理服务,比如开机自动启动服务之类. 这里给大家介绍一个很好用的nginx启动脚本.以及简单的使用,如下: 1. 执行如下命令: vim /etc/init.d/nginxd 2.输入如下内容: 注意:该文件中的如下几个变量,都需要根据你实际的目录来改写. nginx="/usr/local/nginx/sbin/nginx" ##nginx的可执行文件路径 lockfile="/var/nginx/ng

  • Linux下安装nginx的实现方法

    Nginx 是 C语言 开发,建议在 Linux 上运行,当然,也可以安装 Windows 版本, 安装依赖 yum install gcc yum install pcre-devel yum install zlib zlib-devel yum install openssl openssl-devel 安装这4个依赖的时候,中间会有一些询问,输入Y即可 下载nginx的tar包 //进入/usr/local目录 cd /usr/local //创建一个文件夹nginx mkdir ngi

  • shell脚本之nginx自动化脚本

    这个脚本,可以满足nginx开启,停止和重启的操作 #!/bin/bash . /etc/init.d/functions function usage() { echo $"usage:$0 {start|stop|restart}" exit 1 } function start() { /usr/local/nginx/sbin/nginx sleep 1 if [ `netstat -antlpe | grep nginx | wc -l` -ge 0 ];then actio

  • shell脚本源码安装nginx的详细过程

    SHELL概念 SHELL是什么?SHELL是Linux内核跟用户之间沟通的桥梁: SHELL也是一个命令解释器,用户可以输入命令到SHELL,SHELL将命令传递给Linux内核,内核处理完毕,返回给SHELL,SHELL将返回的结果返给用户终端: SHELL是外壳,中间件,外壳有很多的种类,bash.csh.ksh.zsh等: SHELL和SHELL编程有什么关系?SHELL是命令解释器,用户和操作系统沟通桥梁,而SHELL编程基于SHELL解释器来实现具体的功能或者需求: SHELL命令.

  • nginx常用命令放入shell脚本详解

    1.创建一个文件夹存放nginx的shell脚本 /usr/local/task/nginx 1)重启nginx的shell脚本 vim reload.sh #!/bin/bash nginx -s reload 2)设置nginx用户对html目录下所有文件读写执行权限的shell脚本 vim setfacl.sh #!/bin/bash setfacl -m u:nginx:rwx -R /usr/local/nginx/html/ setfacl -m d:u:nginx:rwx -R /

  • Shell脚本一键安装Nginx服务自定义Nginx版本

    经常安装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 f

  • shell脚本一键安装MySQL5.7.29的方法

    本文参考51CTO博客作者wjw555的作品 脚本内容: vim install.mysql.sh #!/bin/bash [ -f /etc/init.d/functions ]&& . /etc/init.d/functions ###Check if user is root if [ $UID -ne 0 ]; then echo "Error: You must be root to run this script, please use root to install

  • shell脚本一键安装php7的实例(推荐)

    如下所示: #!/bin/bash php_gz_file='/home/php/Downloads/source/php-7.0.0.tar.bz2' tar_dir='/home/php/Downloads/dst/' source_dir='php-7.0.0' cd $tar_dir rm -rf $source_dir echo '===start tar php ========' tar -jxvf $php_gz_file > /dev/null echo '===end tar

  • 使用shell脚本一键部署LNMP架构的方法

    LNMP架构介绍 LNMP:Linux系统下Nginx+MySQL+PHP这种网站服务器架构.Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器.Mysql是一个小型关系型数据库管理系统.PHP是一种在服务器端执行的嵌入HTML文档的脚本语言. 原理:浏览器发送http request请求到服务器(Nginx),服务器响应并处理web请求,将一些静态资源(CSS,图片,视频等)保存服务器上,然后将php脚本通过接口传输协议(网关协议)PHP-FCGI

  • 大数据平台使用搭建脚本一键安装OS

    搭建脚本篇 脚本命名随便,只要能看懂就行 镜像包说明 os1.1.iso 用于安装服务端和客户端操作系统 hdp.iso 用于安装hdp服务 1.架构图: 服务端 客户端 2.原理分析 安装系统-安装本地yum源-安装http源-安装并配置ntp服务-配置秘钥-安装jdk-安装mysql-编译安装ambari平台 3.服务端脚本分析 (1)create_local_yum.sh #安装本地yum 源 #!/bin/bash iso_path=/dev/sr0 echo "Iso file pat

  • Centos7下源码安装Python3 及shell 脚本自动安装Python3的教程

    一.源码安装 首先安装开发工具包 yum groupinstall -y "Development tools" 安装依赖软件包 yum -y install gcc gcc-c++ zlib-devel bzip2-devel openssl-devel sqlite-devel readline-devel libffi-devel wget 上Python 官网 找源码包的下载地址 wget https://www.python.org/ftp/python/3.7.6/Pyth

  • shell 脚本自动搭建nfs服务的方法示例

    本文介绍了shell 脚本自动搭建nfs服务的方法示例,分享给大家,具体如下: #vim /sh/zidong_dajian_nfs_fuwu.sh #!/bin/bash #name:zidong_dajian_nfs_fuwu.sh #path:/sh/ #update:2017-9-17 #测试网络是否通畅 ping -c 1 172.16.13.254 >/dev/null && echo **********网络ok********** #第一步:关闭selinux和防火墙

  • shell脚本一键同时推送代码至github和gitee的解决办法

    自己写的东西,要同时推送多个git地址,解决办法如下: 1.先要初始化你的git              进入自己的项目目录,然后执行 git  init cd /app/code/go-study git init 2.执行以下脚本: #!/bin/bash #author Oliver #since 2020-09-03 15:24:31 git remote rm origin #replace your git location git remote add origin 'https

  • shell脚本自动安装jdk的方法示例

    1.安装准备 1.jdk-8u221-linux-x64.tar.gz jdk压缩包(需要放在opt目录下) 2.shell脚本 2.shell命令 Sed 对字符的处理 -p 显示,将某个选择的数据打印显示.通常 p 会与参数 sed -n 一起执行 -d 删除,显示模式空间删除指定行后的内容,不会对原文件数据删除 -a 添加,a 的后面可以接字符串,该字符串会在当前指定行的下一行出现 -c 更改, c 的后面可以接字符串,该字符串可以取代 n1,n2 之间的行 -i 插入, i 的后面可以接

随机推荐