SHELL编程开发Nginx一键部署实战脚本

一、基于SHELL编程开发Nginx一键部署脚本(Make源码方式),编程思路如下

从Nginx官网下载软件包nginx-1.24.0.tar.gz;
通过Tar工具对其解压,tar -xzvf nginx-1.24.0.tar.gz;
cd切换至nginx-1.24.0/源代码目录;
预编译,./configure;
编译,make;
安装,make install;
启动Nginx服务,/usr/local/nginx/sbin/nginx;
查看其进程,ps -ef|grep -aiE nginx;
Firewalld防火墙对外开放80端口。

二、基于SHELL编程开发Nginx一键部署脚本(v1版本)

#!/bin/bash
#2024年5月9日10:39:33
#auto install nginx web.
#by author www.jfedu.net
####################
#提前解决编译时所需的依赖环境、库文件;
yum install -y wget gzip gcc tar make
yum install -y pcre pcre-devel zlib-devel
#下载Nginx软件包;
wget -c http://nginx.org/download/nginx-1.24.0.tar.gz -P /usr/src/
#Cd切换/usr/src/;
cd /usr/src/
ls -l nginx-1.24.0.tar.gz
#通过Tar工具对其解压;
tar -xzvf nginx-1.24.0.tar.gz
#Cd切换至Nginx源代码目录;
cd nginx-1.24.0/
#提前创建www用户和组;
useradd -s /sbin/nologin www -M
#预编译;
./configure --prefix=/usr/local/nginx/ --user=www --group=www --with-http_stub_status_module
#编译;
make -j4
#安装;
make -j4 install
#查看Nginx软件服务是否部署成功;
ls -l /usr/local/nginx/
#启动Nginx服务进程;
/usr/local/nginx/sbin/nginx
#查看Nginx进程状态;
ps -ef|grep -aiE nginx
#Firewalld防火墙对外开放80端口;
firewall-cmd --add-port=80/tcp --permanent
systemctl reload firewalld.service 

三、基于SHELL编程开发Nginx一键部署脚本(v2版本,引入变量)

#!/bin/bash
#2024年5月8日15:03:33
#auto install nginx web.
#by author www.jfedu.net
####################
NGX_VER="1.24.0"
NGX_YUM="yum install -y"
NGX_DIR="/usr/local/nginx"
NGX_SOFT="nginx-${NGX_VER}.tar.gz"
NGX_URL="http://nginx.org/download"
NGX_SRC=$(echo $NGX_SOFT|sed 's/\.tar.*//g')
NGX_ARGS="--user=www --group=www --with-http_stub_status_module"
#提前解决编译时所需的依赖环境、库文件;
$NGX_YUM wget gzip gcc tar make
$NGX_YUM pcre pcre-devel zlib-devel
#下载Nginx软件包;
wget -c $NGX_URL/$NGX_SOFT -P /usr/src/
#Cd切换/usr/src/;
cd /usr/src/
ls -l $NGX_SOFT 
#通过Tar工具对其解压;
tar -xzvf $NGX_SOFT 
#Cd切换至Nginx源代码目录;
cd $NGX_SRC/
#提前创建www用户和组;
useradd -s /sbin/nologin www -M
#预编译;
./configure --prefix=$NGX_DIR/ $NGX_ARGS 
#编译;
make -j4
#安装;
make -j4 install
#查看Nginx软件服务是否部署成功;
ls -l $NGX_DIR/
#启动Nginx服务进程;
$NGX_DIR/sbin/nginx
#查看Nginx进程状态;
ps -ef|grep -aiE nginx
#Firewalld防火墙对外开放80端口;
firewall-cmd --add-port=80/tcp --permanent
systemctl reload firewalld.service 

四、基于SHELL编程开发Nginx一键部署脚本(v3版本,引入变量和if判断)

#!/bin/bash
#2024年4月10日14:55:44
#auto install nginx web.
#by author www.jfedu.net
#####################
NGX_VER="$1"
NGX_YUM="yum install -y"
NGX_DIR="/usr/local/nginx"
NGX_SOFT="nginx-${NGX_VER}.tar.gz"
NGX_URL="http://nginx.org/download"
NGX_SRC=$(echo $NGX_SOFT|sed 's/\.tar.gz//g')
NGX_ARGS="--user=www --group=www --with-http_stub_status_module"
if [ $# -eq 0 ];then
       echo -e "\033[32m--------------\033[0m"
       echo -e "\033[32mUsage:{/bin/sh $0 1.12.2|1.24.0|help}\033[0m"
       exit 1
fi
if [ $1 == "-h" -o $1 == "help" ];then
       echo -e "\033[32m--------------\033[0m"
        echo -e "\033[32mUsage:{/bin/sh $0 1.12.2|1.24.0|help}\033[0m"
        exit 1
fi
#判断Nginx WEB软件是否部署,如果没有部署则部署即可;
if [ ! -f $NGX_DIR/sbin/nginx ];then
       CHECK_NUM=$(rpm -qa|grep -aiwE "gcc|pcre-devel"|wc -l)
       if [ $CHECK_NUM -lt 2 ];then
              #提前解决编译Nginx所需依赖环境、库文件;
              $NGX_YUM wget gzip tar make gcc
              $NGX_YUM pcre pcre-devel zlib-devel
       fi
       #从Nginx官网下载软件包;
       wget -c $NGX_URL/$NGX_SOFT -P /usr/src/
       #Cd切换至/usr/src/;
       cd /usr/src/
       #通过Tar工具对其解压;
       tar -xzvf $NGX_SOFT 
       #Cd切换至Nginx源代码目录;
       cd $NGX_SRC/
       #提前创建www用户和组;
       useradd -s /sbin/nologin www -M
       #预编译;
       ./configure --prefix=$NGX_DIR/ $NGX_ARGS 
       #编译;
       make -j4
       #安装;
       make -j4 install
       #查看Nginx WEB软件是否部署成功;
       ls -l $NGX_DIR/
       #启动Nginx服务进程;
       $NGX_DIR/sbin/nginx
       #查看Nginx进程;
       ps -ef|grep -aiE nginx
       #检测Nginx监听80端口是否启动;
       netstat -tnlp|grep -aiwE 80
       firewall-cmd --list-all |grep -aiwE "ports"|grep -aiE "80" >>/dev/null 2>&1
       if [ $? -ne 0 ];then
              #Firewalld防火墙对外开放80端口;
              firewall-cmd --add-port=80/tcp --permanent
              systemctl reload firewalld.service
       fi
else
       echo "ls -ld $NGX_DIR/"
       ls -l $NGX_DIR
       echo -e "\033[31m--------------\033[0m"     
       echo -e "\033[31mNginx WEB软件服务已经安装,请退出.\033[0m"
       exit 0
fi 
posted @ 2024-05-09 10:45  無心的Man  阅读(185)  评论(0编辑  收藏  举报