mysql+tomcat+nginx搭建web项目集群

本文详细介绍集群架构的概念及其相对于单一架构的优势,包括负载均衡和容灾能力的提升。通过具体步骤展示了如何使用Docker部署Mysql、Tomcat和Nginx容器,实现一个负载均衡的集群架构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

单一架构和集群架构概念

单一架构
在这里插入图片描述

单一架构缺点:
   同时容纳在线人数数量有限
   不容灾,一个崩掉,整个系统都会崩溃

所以发展了集群架构

在这里插入图片描述
集群架构可以实现负载均衡,容灾能力较强,一个tomcat崩掉,其他的还可以用

部署

1、下载镜像
docker pull tomcat

等待……

docker pull mysql:5.7

等待……

docker pull nginx

等待……
Nginx是一个高性能的HTTP和轻量级的Web服务器/反向代理服务器以及电子邮件代理服务器
Nginx相较于Apache\lighttpd具有占有内存少,稳定性高等优势,并且依靠并发能力强,丰富的模块库以及友好灵活的配置而闻名
在这里插入图片描述

2、启动Mysql、导入数据

启动

docker run -d -p 3306:3306 --name mysql5.7 -e MYSQL_ROOT_PASSWORD=root mysql:5.7

mysql的版本是5.7
MYSQL_ROOT_PASSWORD=root是设置mysql的登录密码

从本地复制文件到容器内

docker cp /root/docker/mysql/easybuy.sql  容器ID:/

拷贝文件到容器根目录
在这里插入图片描述

进入容器,登录mysql,密码不回显

docker exec -it 容器ID  bash
mysql -uroot -p

在这里插入图片描述

创建数据库

create database easybuy;

导入数据

use easybuy;
source easybuy.sql

在这里插入图片描述

授权允许远程连接

use mysql;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
flush privileges;
3、启动tomcat容器(3个)、部署项目

启动

docker run -d -p 8081:8080 --name tomcat1 tomcat
docker run -d -p 8082:8080 --name tomcat2 tomcat
docker run -d -p 8083:8080 --name tomcat3 tomcat

在这里插入图片描述
部署项目

docker cp /root/docker/tomcat1/Easy.war  容器1ID:/usr/local/tomcat/webapps
docker cp /root/docker/tomcat2/Easy.war  容器2ID:/usr/local/tomcat/webapps
docker cp /root/docker/tomcat3/Easy.war  容器3ID:/usr/local/tomcat/webapps
4、启动Nginx容器

启动

docker run -d -p 80:80 --name nginx 镜像ID

设置nginx.conf本地挂载点
因为容器是一个最小的系统,没有vim命令
所以我们需要设置本地挂载点,修改本地时,容器中的文件也会修改,类似一个快捷方式

docker cp nginx容器ID:/etc/nginx/nginx.conf  /root/docker/nginx
docker rm -f 旧的nginxID
docker run -d -p 80:80 --name nginx -v /root/docker/nginx/nginx.conf:/etc/nginx/nginx.conf nginx镜像ID

本地修改nginx.conf

vim /root/docker/nginx/nginx.conf
//添加内容
 upstream easybuy{

        server 192.168.160.10:8081;
        server 192.168.160.10.8082;
        server 192.168.160.10:8083;
   }
   server{
        listen 80;
        server_name 192.168.160.10;
        location /{
                proxy_pass http://easybuy;
        }
   }

upstream声明tomcat集群里每一个节点的地址,easybuy是集群名,可自定义
server配置nginx服务
listen 80; nginx监听80端口
server_name 192.168.160.10 配置nginx访问入口
location nginx反向代理到http://easybuy(easybuy里面有三个节点,nginx选用那个节点返回是有自己的算法的)

重启容器
修改好配置文件后,需要重启容器才能生效

docker restart nginx容器ID
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值