Bootstrap

nginx一键部署服务

1.简介

Nginx 是开源、高性能、高可靠的 Web 和反向代理服务器,而且支持热部署,几乎可以做到 7 * 24 小时不间断运行,即使运行几个月也不需要重新启动,还能在不间断服务的情况下对软件版本进行热更新。性能是 Nginx 最重要的考量,其占用内存少、并发能力强、能支持高达 5w 个并发连接数,最重要的是, Nginx 是免费的并可以商业化,配置使用也比较简单

Nginx 特点

  • 高并发、高性能;
  • 模块化架构使得它的扩展性非常好;
  • 异步非阻塞的事件驱动模型这点和 Node.js 相似;
  • 相对于其它服务器来说它可以连续几个月甚至更长而不需要重启服务器使得它具有高可靠性;
  • 热部署、平滑升级;
  • 完全开源,生态繁荣;

2.nginx部署脚本如下:

#!/bin/bash
#function: nginx一键部署服务
#author: aliang  20230825
#####root判断#####
if
  [  "$USER"  != "root"   ]
then
   echo "错误:非root用户,权限不足!"
  exit  0
fi
############防火墙与高级权限##########
systemctl stop firewalld && systemctl disable firewalld  && echo "防火墙已经关闭"
sed -i 's/SELINUX=.*/SELINUX=disabled/g'  /etc/selinux/config  && echo "关闭selinux"
######判断文件是否存在###########
rpm -qa | grep nginx 2>> /dev/null
rpm -e nginx-libs --nodeps nginx-libs 2>> /dev/null
sleep 3

########安装目录如下/usr/local###########
cd /usr/local/
wget http://nginx.org/download/nginx-1.22.1.tar.gz
ruanjian_path="nginx-1.22.1.tar.gz"
if [ -e "$ruanjian_path" ]; then
   
    echo "软件包已存在继续执行"
else
   
    echo "软件包不存在,安装个毛线"
  if [ $? -eq 0 ]; then
      echo "兄弟请上传安装包到/usr/loacal"
exit 1
fi
fi

###############安装依赖包###########
yum -y install gcc-c++
yum -y install pcre pcre-devel 
yum -y install zlib zlib-devel 
yum -y install openssl openssl-devel
###########解包########
cd /usr/local
tar zxf nginx-1.22.1.tar.gz
####编译安装######
cd nginx-1.22.1/
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module
 
if [ $? -eq 0 ]; then
 make && make install
  if [ $? -eq 0 ]; then
   echo "编译安装完成"
fi
else
   echo "编译安装失败,即将退出"
exit 1
fi

####编辑文件#########
cat > /usr/lib/systemd/system/nginx.service << EOF
[Unit]
Description=nginx
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true

[Install]
WantedBy=multi-user.target
EOF

#########赋予权限######
chmod 755 /usr/lib/systemd/system/nginx.service
##########重载配置文件######
systemctl daemon-reload
#########开启服务#######
service nginx start
if [ $? -eq 0 ]; then
   echo "服务开启成功"
else
   echo "服务重启失败,即将退出"
exit 1
fi
#######查看服务是否开启#########
systemctl status nginx
sleep 3
if [ $? -eq 0 ]; then
echo "nginx服务启动成功,服务部署完成"
else
 echo "哦豁,服务启动失败啦,自己慢慢排查吧!!!"
exit 1
fi
IP=$(hostname -I | awk '{print $1}' | awk -F '.' '{print $1"."$2"."$3"."$4}')
	echo "nginx服务已部署完成在浏览器访问本机IP:$IP"

运行玩脚本之后,使用浏览器访问IP地址

实验结果如下:

实验也就完成了(●'◡'●) !!!

;