本次使有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中會同步