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.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;以其穩定性、安全性和靈活性著稱。根據…