#!/bin/bash
#清理环境
nginx_yuanma(){
# set -e
systemctl stop nginx
userdel -r nginx
#删除之前nginx的环境
rm -rf /etc/my* &&\
rm -rf /usr/sbin/nginx &&\
rm -rf /usr/local/nginx &&\
rm -rf /etc/nginx/nginx.conf
if [ $? -eq 0 ];then
echo -e "\033[31m 清理环境成功 \033[0m"
else
echo -e "\033[31m 清理环境失败 \033[0m"
break
fi
systemctl stop firewalld && systemctl stop firewalld && setenforce 0
#安装编译 Nginx 依赖包
yum -y install gcc gcc-c++ make zlib-devel pcre pcre-devel openssl-devel perl-devel perl-ExtUtils-Embed gd-devel >>/dev/null
#官网下载 Nginx 安装包
ls /root | egrep "^nginx-1.22.1.tar.gz$"
if [ $? -eq 0 ];then
echo -e "\033[31m 接下来进入正式配置,请耐心等待 \033[0m"
else
echo -e "\033[31m 请准备正确安装包nginx-1.22.1.tar.gz \033[0m"
curl -o https://nginx.org/download/nginx-1.22.1.tar.gz /root
if [ $? -eq 0 ];then
echo "nginx下载成功"
else
echo "nginx下载失败"
fi
break
fi
#创建 Nginx 运行用户
useradd -s /sbin/nologin -M nginx
cd /root
tar xzf nginx-1.22.1.tar.gz -C /usr/local >>/dev/null
#解压配置 Nginx 编译
cd /usr/local/nginx-1.22.1/
./configure \
--user=nginx \
--group=nginx \
--prefix=/usr/local/nginx \
--conf-path=/etc/nginx/nginx.conf \
--sbin-path=/usr/sbin/nginx \
--error-log-path=/var/log/nginx/nginx_error.log \
--http-log-path=/var/log/nginx/nginx_access.log \
--with-http_stub_status_module \
--pid-path=/usr/local/nginx/run/nginx.pid >>/dev/null
#Nginx 编译安装
make -j 3 && make install
if [ $? -eq 0 ];then
echo -e "\033[31m 编译安装成功 \033[0m"
else
echo -e "\033[31m 编译安装失败 \033[0m"
break
fi
#测试 Nginx 是否安装成功
nginx -V
if [ $? -eq 0 ];then
echo -e "\033[31m 安装成功 \033[0m"
else
echo -e "\033[31m 安装失败 \033[0m"
break
fi
#启动 Nginx 服务
/usr/sbin/nginx
#验证 Nginx 服务是否启动成功
ss -lntp | grep nginx >>/dev/null
if [ $? -eq 0 ];then
echo -e "\033[31m 检测启动成功 \033[0m"
else
echo -e "\033[31m 检测启动失败 \033[0m"
break
fi
#系统添加 Nginx 服务
cat > /lib/systemd/system/nginx.service <<EOF
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
ExecStart=/usr/sbin/nginx
ExecReload=/usr/sbin/nginx -s reload
ExecStop=/usr/sbin/nginx -s quit
PrivateTmp=true
[Install]
WantedBy=multi-user.target
EOF
#以 systemctl 方式启动 Nginx
pkill nginx
smy
systemctl start nginx
ps -ef | grep nginx >>/dev/null
ss -ntlp | grep nginx >>/dev/null
if [ $? -eq 0 ];then
echo -e "\033[32m 启动成功 \033[0m"
else
echo -e "\033[32m 启动失败 \033[0m"
break
fi
#配置 Nginx 服务自动启动
systemctl enable nginx
if [ $? -eq 0 ];then
echo -e "\033[32m 服务自动启动成功 \033[0m"
else
echo -e "\033[32m 服务自动启动失败 \033[0m"
break
fi
}
nginx_yuanma