栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

nginx tomcat负载均衡的docker compose实现

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

nginx tomcat负载均衡的docker compose实现

实验环境

华为云弹性服务器Ubuntu20.04

实验内容

在云端用docker composed的方式部署Nginx和tomcat实现负载均衡

具体包括:

  1. 要求部署一台Nginx和三台Tomcat服务器
  2. Nginx需要实现三种策略:轮询;权重,三台服务器的权重为1,2,5;IP Hash。

体现docker composed对 Docker 容器集群的快速编排

实验步骤 1.安装docker compose
curl -L https://get.daocloud.io/docker/compose/releases/download/v2.5.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
docker-compose –version

2.在home文件新建三个文件,nginx tomcat1 tomcat2 tomcat3
mkdir tomcat1 tomcat2 tomcat3 nginx

3.启动2个容器,nginx tomcat,将容器内的文件复制到本地/home下,1个nginx,3个tomcat
docker run -itd --name nginx -p 80:80 nginx:1.19.3-alpine 
docker run -itd --name tomcat -p 8081:8080 tomcat:9.0.20-jre8-alpine

docker cp nginx:/etc/nginx /home/
docker cp tomcat:/usr/local/tomcat/webapps /home/tomcat1/webapps
docker cp tomcat:/usr/local/tomcat/webapps /home/tomcat2/webapps
docker cp tomcat:/usr/local/tomcat/webapps /home/tomcat3/webapps

4.修改tomcat的index.jsp文件内容
echo "tomcat1" > /home/tomcat1/webapps/ROOT/index.jsp
echo "tomcat2" > /home/tomcat2/webapps/ROOT/index.jsp
echo "tomcat3" > /home/tomcat3/webapps/ROOT/index.jsp

 (这里写错了,后面两个应该是“tomcat2”和“tomcat3”)

5.修改nginx下的nginx.conf文件内容
vim nginx/nginx.conf

以下内容为默认配置新增内容(注释掉的是ip hash和权重):

    server {
                listen 80;
                location  / {
                        proxy_pass http://blance;
                }
        }

    upstream blance{
            #ip_hash;
            server 121.37.68.105:8081;
            server 121.37.68.105:8082;
            server 121.37.68.105:8083;
            #server 121.37.68.105:8081 weight=1;
            #server 121.37.68.105:8082 weight=3;
            #server 121.37.68.105:8083 weight=5;
    }
6.删除掉现在的容器
docker rm -f nginx tomcat

7.新建vhost目录,并在该目录下配置docker-compose.yml文件

注意:version一定要与自己的compose版本相同;volumes冒号左侧是本地路径,右侧是容器路径

version: '2.5'
services:
  test-tomcat1:
    image: tomcat:9.0.20-jre8-alpine
    container_name: tomcat1
    ports:
      - 8081:8080
    volumes:
      - /home/tomcat1/webapps:/usr/local/tomcat/webapps
    depends_on:
      - test-nginx
  test-tomcat2:
    image: tomcat:9.0.20-jre8-alpine
    container_name: tomcat2
    ports:
      - 8082:8080
    volumes:
      - /home/tomcat2/webapps:/usr/local/tomcat/webapps
    depends_on:
      - test-nginx
  test-tomcat3:
    image: tomcat:9.0.20-jre8-alpine
    container_name: tomcat3
    ports:
      - 8083:8080
    volumes:
      - /home/tomcat3/webapps:/usr/local/tomcat/webapps
    depends_on:
      - test-nginx
  test-nginx:
    image: nginx:1.19.3-alpine
    container_name: testnginx
    restart: always
    ports:
      - 80:80
    volumes:
      - /home/nginx/nginx.conf:/etc/nginx/nginx.conf
8.通过compose启动容器
docker-compose up

9.测试

 可以通过浏览器访问IP进行测试:网页上会有之前写好的index.jsp文件中的内容,命令行会有相应的get(Ctrl+Z可以停止彩色的输出,但并不会停止容器):

也可以通过命令行测试:

while true; do wget -O - -q http://121.37.68.105:80; sleep 1; done

写在最后

有问题欢迎在评论区讨论

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/939509.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号