docker 集群 springboot 项目

前言

关于集群的概念以及集群很分布式的关系或者区别,请各位自行百度,道理大家都懂,只要能理解、知道是怎么回事就行。

注:杨千嬅-2019世界巡回演唱会-天津站:2019-12-29,天津体育馆(舒服哦!)

准备

1、准备两个 springboot 项目,端口自定义,笔者这里都是 8081

2、这两个 springboot 项目添加两个测试接口,接口都为 /test/hello,且接口返回结果为

        第一个:Welcome to service one!

        第二个:Welcome to service two!

3、服务器,确保服务器安装 docker、nginx等相关配置,有兴趣的同学可戳这里

        https://blog.csdn.net/XGLLHZ/article/details/103005816

正文

1、首先将两个项目部署到服务器,部署方法戳这里:https://blog.csdn.net/XGLLHZ/article/details/103045580,部署完成后查看是否启动成功

docker ps   #查看正常运行的容器列表
若启动正常,则会看到容器端口分别为 3301、3302 的两个容器,先忽略掉端口为 10031 的容器

2、配置 nginx,拉取到 nginx 镜像后先不要创建 nginx 容器,先配置镜像的 nginx.conf文件,然后利用 nginx 镜像启动容器并且挂载 nginx.conf 和 default.conf 文件(实际上是用我们创建的 nginx 配置文件覆盖掉了 nginx 镜像中的配置文件,因为如果要操作镜像中的配置文件则需要进入镜像中,比较麻烦,所以我们将其拿出来)

拉取 nginx 镜像

docker search nginx   #查找 nginx 相关的镜像列表
docker pull nginx:latest   #拉取 nginx 镜像

以终端的方式打开镜像

docker run -i -t nginx /bin/bash   #以终端的方式打开镜像容器
ls -l   #查看镜像内的文件

在 etc 中找到 nginx 的两个配置文件(为什么是两个:因为在 nginx.conf 配置文件中有一行代码,它指向了default.conf,所以有两个)

cat /etc/nginx/nginx.conf   #查看 ningx.conf 中的文件
cat /etc/nginx/conf.d/default.conf   #查看 default.conf 中的文件
然后将这两个文件中的内容考出来

 然后在根目录下创建配置文件(这个随意,但是在哪儿要知道),笔者这里创建的是 config/nginx,里面包含了两个文件,分别是 nginx.conf 和 default.conf,然后将刚才拷贝出来的两个分别粘贴到创建的两个文件夹内。

接下来就是创建 nginx 容器了

docker run --name nginx -d -p 10031:80 
-v /config/nginx/conf/nginx.conf:/etc/nginx/nginx.conf 
-v /config/nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf 
nginx
# 创建的 nginx 容器端口号是 10031,名称是 nginx
# 然后挂载了两个刚才创建的文件
# 基础镜像是 nginx

 然后查看 刚才创建的 nginx 容器是否正常启动

接下来就是集群了。打开 nginx 的配置文件,进行配置

vim default.conf   #编辑 default.conf 配置文件

# 以下为修改的部分

# 集群服务组 3301、3302分别为两个 springboot 项目所在的容器端口号,
weight 为权重,越大,处理请求所分配的次数就越多
upstream springboots {
    server 服务器外网 ip:3301 weight=1;   
    server 服务器外网 ip:3302 weight=1;   
}

server {
    listen       80;   #nginx监听端口
    server_name  服务器外网 ip;   # 服务名为服务器外网 ip,如果有域名则为域名

    #charset koi8-r;
    #access_log  /var/log/nginx/host.access.log  main;

    location / {
        proxy_pass http://springboots;   #反向代理地址
    }

 

然后重启 nginx、两个项目所在的容器

测试:

访问: 服务器外网ip:10031/api/test/hello

第一次访问:

第二次访问: 

 

然后,就可以开始分布式集群了!!! 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值