本次使有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.pswp.cn/diannao/89419.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/89419.shtml
英文地址,请注明出处:http://en.pswp.cn/diannao/89419.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

zabbix监控Centos 服务器

1.2&#xff1a;本地安装 先使用wget下载RPM安装包 然后解压安装 >>wget https://repo.zabbix.com/zabbix/6.4/rhel/8/x86_64/zabbix-agent2-6.4.21-release1.el8.x86_64.rpm ##### CENTOS 8 使用这一条>>rpm -ivh zabbix-agent2-6.4.21-release1.el8.x86_64.r…

中科米堆三维扫描仪3D扫描压力阀抄数设计

三维扫描技术正以数字化手段重塑传统制造流程。以压力阀这类精密流体控制元件为例&#xff0c;其内部流道结构的几何精度直接影响设备运行稳定性与使用寿命。 在传统设计模式下&#xff0c;压力阀的逆向工程需经历手工测绘、二维图纸绘制、三维建模转换等多个环节。技术人员需…

Python pytz 时区使用举例

Python pytz 时区使用举例 ⏰ 一、Python代码实现&#xff1a;时区转换与时间比较 import pytz from datetime import datetime# 1. 获取当前UTC时间 utc_now datetime.now(pytz.utc)# 2. 转换为目标时区&#xff08;示例&#xff1a;上海和纽约&#xff09; shanghai_tz py…

vue中ref()和reactive()区别

好的&#xff0c;这是 Vue 3 中 ref() 和 reactive() 这两个核心响应式 API 之间区别的详细解释。 简单来说&#xff0c;它们是创建响应式数据的两种方式&#xff0c;主要区别在于处理的数据类型和访问数据的方式。 核心区别速查表 特性ref()reactive()适用类型✅ 任何类型 …

目标检测数据集——交通信号灯红绿灯检测数据集

在智能交通系统迅速发展的背景下&#xff0c;准确且实时地识别交通信号灯的状态对于提升道路安全和优化交通流量管理至关重要。 无论是自动驾驶汽车还是辅助驾驶技术&#xff0c;可靠地检测并理解交通信号灯的指示——特别是红灯与绿灯的区别——是确保交通安全、避免交通事故…

哪款即时通讯服务稳定性靠谱?18家对比

本文将深入对比18家 IM 服务商&#xff1a;1.网易云信; 2. 有度即时通; 3. 环信; 4. 小天互连; 5. 企达即时通讯; 6. 敏信即时通讯; 7. 360织语; 8. 容联云通讯; 9. 云之讯 UCPaaS等。 在如今的数字化时代&#xff0c;即时通讯&#xff08;IM&#xff09;软件已经成为企业日常运…

【Android】Flow学习及使用

目录 前言基础基本用法概念与核心特点Android中使用与LiveData对比热流StateFlow、SharedFlow 搜索输入流实现实时搜索 前言 ​ Flow是kotlin协程库中的一个重要组成部分&#xff0c;它可以按顺序发送多个值&#xff0c;用于对异步数据流进行处理。所谓异步数据流就是连续的异…

idea常做的配置改动和常用插件

IDEA 使用 最强教程&#xff0c;不多不杂。基于idea旗舰版 2019.2.3左右的版本&#xff0c;大多数是windows的&#xff0c;少数是mac版的 一、必改配置 1、ctrl滚轮 调整字体大小 全局立即生效&#xff1a;settings -> Editor -> General -> Change font size with …

3. 物理信息神经网络(PINNs)和偏微分方程(PDE),用物理定律约束神经网络

导言&#xff1a;超越时间&#xff0c;拥抱空间 在前两篇章中&#xff0c;我们已经走过了漫长而深刻的旅程。我们学会了用常微分方程&#xff08;ODE&#xff09;来描述事物如何随时间演化&#xff0c;从一个初始状态出发&#xff0c;描绘出一条独一无二的生命轨迹。我们还学会…

Flutter基础(基础概念和方法)

概念比喻StatefulWidget会变魔术的电视机State电视机的小脑袋&#xff08;记信息&#xff09;build 方法电视机变身显示新画面setState按遥控器按钮改变状态Scaffold电视机的外壳 StatefulWidget&#xff1a;创建一个按钮组件。State&#xff1a;保存点赞数&#xff08;比如 i…

K8s——Pod(1)

目录 基本概念 ‌一、Pod 的原理‌ ‌二、Pod 的特性‌ ‌三、Pod 的意义‌ 状态码详解 ‌一、Pod 核心状态详解‌ ‌二、其他关键状态标识‌ ‌三、状态码运维要点‌ 探针 ‌一、探针的核心原理‌ ‌二、三大探针的特性与作用‌ ‌参数详解‌ ‌三、探针的核心意义…

MySQL 存储过程面试基础知识总结

文章目录 MySQL 存储过程面试基础知识总结一、存储过程基础&#xff08;一&#xff09;概述1.优点2.缺点 &#xff08;二&#xff09;创建与调用1.创建存储过程2.调用存储过程3.查看存储过程4.修改存储过程5.存储过程权限管理 &#xff08;三&#xff09;参数1.输入参数2.输出参…

NLP文本数据增强

文章目录 文本数据增强同义词替换示例Python代码示例 随机插入示例Python代码示例 随机删除示例Python代码示例 回译&#xff08;Back Translation&#xff09;示例Python代码示例 文本生成模型应用方式示例Python代码示例 总结 文本数据增强 数据增强通过对原始数据进行变换、…

(LeetCode 每日一题) 594. 最长和谐子序列 (哈希表)

题目&#xff1a;594. 最长和谐子序列 思路&#xff1a;哈希表&#xff0c;时间复杂度0(n)。 用哈希表mp来记录每个元素值出现的次数&#xff0c;然后枚举所有值x&#xff0c;看其x1是否存在&#xff0c;存在的话就可以维护最长的子序列长度mx。 C版本&#xff1a; class Sol…

FreePDF:让看英文文献像喝水一样简单

前言 第一次看英文文献&#xff0c;遇到不少看不懂的英文单词&#xff0c;一个个查非常费劲。 后来&#xff0c;学会了使用划词翻译&#xff0c;整段整段翻译查看&#xff0c;极大提升看文献效率。 最近&#xff0c;想到了一种更快的看文献的方式&#xff0c;那就是把英文PD…

Scikit-learn:机器学习的「万能工具箱」

——三行代码构建AI模型的全栈指南** ### **一、诞生背景&#xff1a;让机器学习从实验室走向大众** **2010年前的AI困境**&#xff1a; - 学术界模型难以工程化 - 算法实现碎片化&#xff08;MATLAB/C主导&#xff09; - 企业应用门槛极高 > **破局者**&#xff1a;Da…

GPT-1论文阅读:Improving Language Understanding by Generative Pre-Training

这篇论文提出了 GPT (Generative Pre-Training) 模型&#xff0c;这是 GPT系列&#xff08;包括 GPT-2, GPT-3, ChatGPT, GPT-4 等&#xff09;的奠基之作。它标志着自然语言处理领域向大规模无监督预训练任务特定微调范式的重大转变&#xff0c;并取得了显著的成功。 文章链接…

Hadoop大数据-Mysql的数据同步工具Maxwell安装与使用( 详解)

目录 一、前置基础知识 1、主从复制&#xff08;Replication&#xff09; 2、数据恢复 3、数据库热备 4、读写分离 5、存储位置及命名 二、Maxwell简介 1、简介 2、Maxwell同步数据特点 2.1.历史记录同步 2.2.断点续传 三、前期准备 1、查看网卡&#xff1a; 2、…

分布式系统的一致性模型:核心算法与工程实践

目录 一、分布式一致性的核心挑战二、主流一致性算法原理剖析1. Paxos&#xff1a;理论基础奠基者2. Raft&#xff1a;工业级首选方案3. ZAB&#xff1a;ZooKeeper的引擎 三、算法实现与代码实战Paxos基础实现&#xff08;Python伪代码&#xff09;Raft日志复制核心逻辑 四、关…

Apache HTTP Server部署全攻略

httpd 简介 httpd&#xff08;Apache HTTP Server&#xff09;是一款历史悠久的开源 Web 服务器软件&#xff0c;由 Apache 软件基金会开发和维护。自 1995 年首次发布以来&#xff0c;Apache 一直是 Web 服务器领域的领导者&#xff0c;以其稳定性、安全性和灵活性著称。根据…