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;
        }
    }
}
EOF

sleep 5

# 启动Nginx
systemctl start nginx && systemctl enable nginx
if 
	[ $? = 0 ]
then 
	echo "成功"
	else
	echo "失败"
	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 5

ip=$(hostname  -I  |awk  '{print  $1}')


# 安装OpenJDK 8
yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel
if [ $? = 0 ]
then
    echo "安装成功"
else
    echo "安装失败"
    sleep 5
    exit 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 ]]; then
    echo "下载Tomcat失败"
    exit 1
fi
tar -zxvf apache-tomcat-9.0.105.tar.gz
if [[ $? -ne 0 ]]; then
    echo "解压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 tomcat

echo 在浏览器中访问$(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 ]; then
    touch /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 ]; then
    touch /etc/rc.d/rc.local
    chmod +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 ]; then
    echo "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中会同步

相关推荐
你想考研啊2 小时前
三、jenkins使用tomcat部署项目
运维·tomcat·jenkins
JAVA学习通7 小时前
Mybatis--动态SQL
sql·tomcat·mybatis
BD_Marathon7 小时前
Ubuntu下Tomcat的配置
linux·ubuntu·tomcat
BD_Marathon7 小时前
Ubuntu:Tomcat里面的catalina.sh
linux·ubuntu·tomcat
微风粼粼8 小时前
程序员在线接单
java·jvm·后端·python·eclipse·tomcat·dubbo
没有名字的小羊1 天前
8.Docker镜像讲解
运维·docker·容器·tomcat
IT乌鸦坐飞机2 天前
ansible部署数据库服务随机启动并创建用户和设置用户有完全权限
数据库·ansible·centos7
ye902 天前
银河麒麟V10服务器版 + openGuass + JDK +Tomcat
java·开发语言·tomcat
hunjinYang2 天前
Tomcat镜像实战:掌握Dockerfile的编写以及发布项目
docker·tomcat