当前位置: 首页 > news >正文

nignx+Tomcat+NFS负载均衡加共享储存服务脚本

本次使有4台主机,系统均为centos7,1台nignx,2台tomcat,1台nfs

第一台配置nignx脚本

#!/bin/bash
#xiexianghu   2025.6.24
#nignx配置脚本,centos7#关闭防火墙和SElinux
systemctl stop firewalld && systemctl disable firewalld  && echo "防火墙已经关闭"
sed -i 's/SELINUX=.*/SELINUX=disabled/g'  /etc/selinux/config && setenforce 0 && echo "关闭selinux"ip=$(hostname  -I  |awk  '{print  $1}')## 添加Nginx官方仓库
cat > /etc/yum.repos.d/nginx.repo << 'EOF'
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
EOF# 安装Nginx
yum install -y nginx# 验证安装
nginx -v# 备份默认配置
mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.backup# 创建新的配置文件
cat > /etc/nginx/nginx.conf << 'EOF'
user nginx;
worker_processes 1;error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;events {worker_connections 1024;
}http {include /etc/nginx/mime.types;default_type application/octet-stream;log_format main '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';access_log /var/log/nginx/access.log main;sendfile on;#tcp_nopush on;keepalive_timeout 65;# 定义上游Tomcat服务器池upstream tomcat_servers {# 轮询策略(默认)server 10.10.10.104:8080;server 10.10.10.105:8080;# 可添加更多配置参数:# weight=10;              # 权重,数值越大优先级越高# max_fails=3;            # 失败次数# fail_timeout=30s;       # 失败超时时间# backup;                  # 备用服务器}server {listen 80;server_name localhost;location / {proxy_pass http://tomcat_servers;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}error_page 500 502 503 504 /50x.html;location = /50x.html {root /usr/share/nginx/html;}}
}
EOFsleep 5# 启动Nginx
systemctl start nginx && systemctl enable nginx
if [ $? = 0 ]
then echo "成功"elseecho "失败"exit 0
fi

tomcat配置脚本,2台都是一样的配置,这里非常注意创建的安装目录,后面启动脚本在里面,要指定绝对路径

#!/bin/bash
#nignx+Tomcat+NFS负载均衡加共享储存服务脚本,4台服务器centos7
#本脚本为tomcat脚本
#xiexianghu   2025.6.23#关闭防火墙和selinux
systemctl stop firewalld && systemctl disable firewalld  && echo "防火墙已经关闭"
sed -i 's/SELINUX=.*/SELINUX=disabled/g'  /etc/selinux/config && setenforce 0 && echo "关闭selinux"
sleep 5ip=$(hostname  -I  |awk  '{print  $1}')# 安装OpenJDK 8
yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel
if [ $? = 0 ]
thenecho "安装成功"
elseecho "安装失败"sleep 5exit 1  # 返回非零状态码表示失败
fi# 验证安装
java -version# 创建安装目录
cd /usr/local# 下载Tomcat 9(可根据需求选择版本)
wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.105/bin/apache-tomcat-9.0.105.tar.gz
if [[ $? -ne 0 ]]; thenecho "下载Tomcat失败"exit 1
fi
tar -zxvf apache-tomcat-9.0.105.tar.gz
if [[ $? -ne 0 ]]; thenecho "解压Tomcat失败"exit 1
fi
mv apache-tomcat-9.0.105 tomcat
chmod -R 755 /usr/local/tomcat#配置 Tomcat 标识
# 修改webapps/ROOT/index.jsp,添加标识1,表示第一台tomcat
echo "<h1>Tomcat Server 1 - 10.10.10.101</h1>" > /usr/local/tomcat/webapps/ROOT/index.jsp# 创建systemd服务文件
cat > /usr/lib/systemd/system/tomcat.service << 'EOF'
[Unit]
Description=Apache Tomcat 9.0.105
After=network.target[Service]
Type=forking
User=root
Group=root
Environment="JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk"
Environment="CATALINA_HOME=/usr/local/tomcat"
Environment="CATALINA_BASE=/usr/local/tomcat"
Environment="CATALINA_PID=/usr/local/tomcat/temp/tomcat.pid"
Environment="CLASSPATH=/usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar"
ExecStart=/usr/local/tomcat/bin/startup.sh
ExecStop=/usr/local/tomcat/bin/shutdown.sh
Restart=on-failure[Install]
WantedBy=multi-user.target
EOF# 重新加载systemd配置
systemctl daemon-reload# 启动Tomcat并设置为开机自启
systemctl start tomcat
systemctl enable tomcatecho 在浏览器中访问$(hostname  -I  |awk  '{print  $1}')看到各自的标识页面

nfs配置脚本

#!/bin/bash
#nignx+Tomcat+NFS负载均衡加共享储存服务脚本,4台服务器centos7
#本脚本为NFS脚本
#xiexianghu   2025.6.23#安装 NFS 服务
#使用yum命令安装rpcbind和nfs-utils
yum -y install rpcbind nfs-utils#创建共享目录
mkdir /data/
mkdir /data/share/
chmod 755 -R /data/share/#编辑 NFS 的配置文件/etc/exports,添加共享目录及权限设置
# 配置NFS共享
echo "正在配置NFS共享..."
# 检查/etc/exports文件是否存在,若不存在则创建
if [ ! -f /etc/exports ]; thentouch /etc/exports
fi# 向exports文件中添加共享配置
echo "/data/share/ 10.10.10.104(rw,no_root_squash,no_all_squash,sync)" >> /etc/exports
echo "/data/share/ 10.10.10.105(rw,no_root_squash,no_all_squash,sync)" >> /etc/exports# 重新导出NFS共享
echo "正在重新导出NFS共享..."
exportfs -r# 启动NFS相关服务
echo "正在启动NFS相关服务..."
systemctl start rpcbind
systemctl start nfs# 设置服务开机自启
echo "正在设置服务开机自启..."
systemctl enable rpcbind
systemctl enable nfs# 输出脚本执行完成信息
echo "NFS服务安装与配置完成!"

最后解释tomcat的最后配置脚本

#!/bin/bash# NFS客户端配置与挂载脚本
# 功能:安装NFS客户端工具,创建挂载目录,配置NFS挂载并设置开机自动挂载
# 输出脚本开始信息
echo "开始配置NFS客户端..."# 安装NFS相关服务
echo "正在安装rpcbind和nfs-utils..."
yum -y install rpcbind
yum -y install nfs-utils# 创建挂载目录
echo "正在创建挂载目录..."
mkdir -p /mnt/share# 临时挂载NFS共享
echo "正在临时挂载NFS共享..."
mount -t nfs 10.10.10.100:/data/share /mnt/share/ -o nolock,nfsvers=3,vers=3# 配置开机自动挂载
echo "正在配置开机自动挂载..."
# 检查rc.local文件是否存在,不存在则创建
if [ ! -f /etc/rc.d/rc.local ]; thentouch /etc/rc.d/rc.localchmod +x /etc/rc.d/rc.local
fi
# 向rc.local中添加挂载命令(避免重复添加)
grep -q "mount -t nfs 10.10.10.100:/data/share /mnt/share/ -o nolock,nfsvers=3,vers=3" /etc/rc.d/rc.local
if [ $? -ne 0 ]; thenecho "mount -t nfs 10.10.10.100:/data/share /mnt/share/ -o nolock,nfsvers=3,vers=3" >> /etc/rc.d/rc.local
fi# 确保rc.local有执行权限
chmod +x /etc/rc.d/rc.local# 输出脚本执行完成信息
echo "NFS客户端配置与挂载完成!"
echo "当前已临时挂载NFS共享,系统重启后将自动挂载。"

全部配置好后在tomcat1中创建文件,在tomcat2中会同步

http://www.dtcms.com/a/264566.html

相关文章:

  • 解决 Cannot create Swift scratch context
  • 【技术前沿:飞算JavaAI如何用AI引擎颠覆传统Java开发模式】
  • 洞若观火 - 运行时安全检测
  • Node.js、npm 与 nvm 使用全指南:安装、版本管理与开发环境配置详解
  • 运用逆元优化组合计算#数论
  • [HDLBits] Cs450/timer
  • 工业网络安全新范式——从风险可见性到量化防御的进化
  • 优雅草蜻蜓R实时音视频会议系统技术规划与全球RTC开源技术全景分析·优雅草卓伊凡|麻子|贝贝|clam
  • CentOS系统如何安装和使用docker
  • SpringSSM
  • NV113NV116美光固态闪存NV120NV130
  • 7月2日星期三今日早报简报微语报早读
  • 【一起来学AI大模型】通义千问API入门教程
  • NVIDIA智能汽车技术公开课笔记
  • 【Maven】Maven核心机制的 万字 深度解析
  • Oracle 证书等级介绍
  • Spring AI 源码
  • 全面的 Spring Boot 整合 RabbitMQ 的 `application.yml` 配置示例
  • 将文件使用base64存入数据库并在微信小程序中实现文件下载
  • springboot 显示打印加载bean耗时工具类
  • iOS App无源码安全加固实战:如何对成品IPA实现结构混淆与资源保护
  • python中两种策略模式的实现
  • 2-RuoYi-UI管理平台的启动
  • 大语言模型随意猜测网址引发网络安全危机
  • 零信任安全:重塑网络安全架构的革命性理念
  • 【Unity3D实现加载在线地图——WebGL】
  • 【ABAP】 从无到有 新建一个Webdynpro程序
  • 同一水平的 RISC-V 架构的 MCU,和 ARM 架构的 MCU 相比,运行速度如何?
  • Tomcat log日志解析
  • 【Linux】文件权限以及特殊权限(SUID、SGID)