当前位置: 首页 > 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.lqws.cn/news/606655.html

相关文章:

  • 重塑智能体决策路径:深入理解 ReAct 框架
  • 使用OpenCV训练自有模型的实践
  • 金融安全生命线:用AWS EventBridge和CloudTrail构建主动式入侵检测系统
  • Chrome 下载文件时总是提示“已阻止不安全的下载”的解决方案
  • VR制作公司业务范围
  • 【NumPy第二期:深入学习NumPy:切片、索引与数组操作进阶】
  • Java类加载机制及关于时序数据库IoTDB排查
  • 阿里云AppFlow AI助手打造智能搜索摘要新体验
  • 01背包问题[经典][动态规划]
  • RT Thread Studio修改堆区大小的方法
  • pytorch学习-9.多分类问题
  • 第8章网络协议-NAT
  • 微信小程序入门实例_____打造你的专属单词速记小程序
  • 开源 | V3.1.1慧知开源重卡运营充电桩平台 - 重卡运营充电桩平台管理解决方案;企业级完整代码 多租户、模拟器、多运营商、多小程序;
  • Qt 5.9 XML文件写入指南
  • React Native 安卓、苹果、鸿蒙5.0 三端适配方案:条件编译 + 平台适配层
  • 如何设置电脑定时休眠?操作指南详解
  • 前端面试专栏-主流框架:16. vue工程化配置(Vite、Webpack)
  • 哪款即时通讯服务稳定性靠谱?18家对比
  • 虚拟 SD 卡 MBR 与分区表结构深度解析:基于 QEMU 生成的 2G RAW 镜像
  • 解决 Cannot create Swift scratch context
  • WPF学习笔记(21)ListBox、ListView与控件模板
  • minio详细教程丨如何3分钟搭建minio
  • 操作系统考试大题-处理机调度算法-详解-1
  • Ollama最新快速上手指南:从安装到精通本地AI模型部署
  • 容器与 Kubernetes 基本概念与架构
  • pnpm 升级
  • 解决在Pom文件中写入依赖坐标后, 刷新Maven但是多次尝试都下载不下来
  • 使用开源项目youlai_boot 导入到ecplise 中出现很多错误
  • 【飞算JavaAI】智能开发助手赋能Java领域,飞算JavaAI全方位解析