环境检测:

1、Docker没有安装的小伙伴请查看https://www.cnblogs.com/niuniu0108/p/12372531.html

2、没有创建Nginx容器的小伙伴请查看https://www.cnblogs.com/niuniu0108/p/12372709.html

3、没有创建Tomcat容器的小伙伴请查看https://www.cnblogs.com/niuniu0108/p/12373067.html

4、完成上述操作后,输入docker ps,回车后将会有一下内容(一个Tomcat容器、一个Nginx容器)

负载均衡部署:

1、在创建两个Tomcat容器,执行以下命令
docker run -itd --name myTomcat2 -p 8087:8080 tomcat:latest /bin/bash
docker run -itd --name myTomcat3 -p 8088:8080 tomcat:latest /bin/bash

执行完成后,进入容器操作(按照上面环境检测步骤3)

2、分别访问:http://IP:8087和http://IP:8088,出现以下界面说明Tomcat容器部署成功。

3、还记得自己的Nginx容器部署的时候映射的端口吧,对的,就是8081,现在访问http://IP:80801,出现下面的界面说明Nginx没问题。

4、现在我们来实现访问Nginx的时候,跳转到Tomcat

进入Nginx容器:docker exec -it fb1773fc6bcd /bin/bash

进入Nginx配置server的文件夹

cd /etc/nginx/conf.d

编辑server配置文件

vim default.conf (会发现vim命令找不着,怎么办呢?只能把文件拷贝到宿主机中,改完之后然后在拷贝回来是不是就好了)

记住这个文件路径(/etc/nginx/conf.d/default.conf),然后退出容器:exit

进入usr下的local文件夹

cd /usr/local/

在此文件夹中建立一个文件夹dockerNginx8082

mkdir dockerNginx8082

查看所有启动的容器并找到myNginx容器的ID

docker ps

开始拷贝文件

将myNginx中的(/etc/nginx/conf.d)的文件(default.conf)拷贝到宿主机(/usr/local/dockerNginx8082)

命令(红色字体就是myNginx对应的容器ID):docker cp fb1773fc6bcd:/etc/nginx/conf.d/default.conf /usr/local/dockerNginx8082

将myNginx中的(/etc/nginx)的文件(nginx.conf)拷贝到宿主机(/usr/local/dockerNginx8082)

命令(红色字体就是myNginx对应的容器ID):docker cp fb1773fc6bcd:/etc/nginx/nginx.conf /usr/local/dockerNginx8082

然后输入命令:ls,回车就回看到文件default.conf和nginx.conf已经拷贝过来了

现在开始修改default.conf文件:

vim default.conf

然后按键盘i键,就会看到下面的内容

加入下面的东西(其中192.168.91.128,这个IP是我的,你们要换成你们自己的IP)

location / {
proxy_pass http://myProxy;
}

然后按esc键,跟着输入英文冒号:,然后输入wq,最后回车

这样default.conf就文件修改完成了,

继续修改nginx.conf文件

vim nginx.conf

然后输入键i,在倒数第二行将下面的代码粘贴进去,如下图所示:

upstream myProxy{
server 192.168.91.128:8086;
server 192.168.91.128:8087;
server 192.168.91.128:8088;
}

然后按esc键,输入英文冒号:,然后输入wq,最后回车,修改完成。

然后重启容器:

docker restart fb1773fc6bcd(myNginx容器ID)

现在将这两个文件在拷贝回去
执行命令 :docker cp /usr/local/dockerNginx8082/default.conf fb1773fc6bcd:/etc/nginx/conf.d
执行命令 :docker cp /usr/local/dockerNginx8082/nginx.conf fb1773fc6bcd:/etc/nginx

然后我们进入myNginx容器:docker exec -it fb1773fc6bcd /bin/bash

然后启动nginx

输入命令cd usr/sbin,回车

输入命令./nginx,回车

现在我们再访问myNginx的网站试试,有没有跳转到tomcat去,http://ip:8081  发现可以跳转到Tomcat,但是不知道是哪个Tomcat,下面我们可以向每个Tomcat中都放入应用。

下面我们开始想tomcat中放入war包,首先先要知道war放在什么地方,他就放在tomcat容器内/usr/local/tomcat/webapps文件夹下面,现在我们将主机中的war拷贝到这个文件夹下面,一共三个tomcat容器,所以要执行三条命令,三条命令唯一不同就是要更换容器ID

备注:紫色的是你自己的war包路径,红色的是你自己的容器ID

docker cp usr/local/receiveFtp/loadbalancing_1.war 0632aa789b09:/usr/local/tomcat/webapps

docker cp usr/local/receiveFtp/loadbalancing_1.war 26f0a02b06ee:/usr/local/tomcat/webapps

docker cp usr/local/receiveFtp/loadbalancing_1.war 2924f33228b5:/usr/local/tomcat/webapps

到现在就拷贝完了,先依次进入先搁tomcat容器,将tomcat程序重启

我这里就列举一个,其他的都一样
进入容器:docker exec -it 0632aa789b09 /bin/bash

进入bin文件夹:cd bin

停止tomcat程序:./shutdown.sh

启动tomcat程序:./startup.sh

依次操作剩余的两个tomcat容器

我的操作完成之后就是这个样子的:

 提示:我的只有8088端口是好的,其他的不能访问不知道为什么,我又重新新建了其他端口的容器是ok的,里面的IP刷新一次变化一次,这个问题目前还在排查中,不过操作是没有问题的!请各位放心!

如果遇到和我一样的已经解决的请留言告知我一下,谢谢!

经过测试,好像有的端口可以有的端口不行,但具体原因还有待查证。。。。。(有一点要提醒一下,我在宿主机上装的nginx是可以的,可以访问到所有的Tomcat,还没有发现端口有问题的情况!!!!!!)

Docker+Nginx+Tomcat实现负载均衡的更多相关文章

  1. Docker + Nginx + Tomcat 实现负载均衡简单演示

    Docker + Nginx + Tomcat 实现负载均衡 环境 [root@pinyoyougou-docker ~]# docker -v Docker version 1.12.6, buil ...

  2. Nginx+Tomcat+Memcached负载均衡集群服务搭建

    操作系统:CentOS6.5  本文档主要讲解,如何在CentOS6.5下搭建Nginx+Tomcat+Memcached负载均衡集群服务器,Nginx负责负载均衡,Tomcat负责实际服务,Memc ...

  3. nginx+tomcat+redis负载均衡及session共享

    概述 本文档是用来详细描述 nginx+tomcat+redis负载均衡实现session共享 所需软件及下载地址 软件名称 下载地址 功能说明 Nginx-v1.6.0 http://nginx.o ...

  4. 使用 Nginx + Tomcat 搭建负载均衡

    负载均衡 建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽.增加吞吐量.加强网络数据处理能力.提高网络的灵活性和可用性. 负载均衡,英文名称为Load Balance, ...

  5. nginx+tomcat实现负载均衡以及双机热备

    还记得那些年吗? 还记得更新代码之后,服务器起不来被领导训斥吗?还记得更新代码,需要停机过多的时间被渠道部们埋怨吗?还记得更新代码,代码出错时自己吓个半死吗?于是我们聪明勤快的程序员,看着电影待到夜深 ...

  6. Ubuntu下实现Nginx+Tomcat实现负载均衡

    先说一下为什么写这个文章,在性能测试过程中,我们可能会关注很多指标,比如CPU.IO.网络.磁盘等,通过这些指标大致可以判断哪个环节遇到了性能瓶颈,但是当这些指标无法判断出性能瓶颈时,我们可能就需要对 ...

  7. 简单的 Nginx+Tomcat 配置负载均衡集群

    简单 Nginx+Tomcat 配置负载均衡集群 前期准备 解压两个tomcat,修改端口号 server1:8081 server:8082 同时启动 nginx官网下载解压版nginx 创建一个简 ...

  8. Nginx+Tomcat 实现负载均衡 ,动静分离集群部署

    Nginx + Tomcat 实现负载均衡,动静分离集群部署 1.Nginx实现负载均衡原理 2.Nginx配置反向代理主要参数 3.实验 1.Nginx实现负载均衡原理: Nginx服务器作为前端, ...

  9. Nginx+Tomcat搭建负载均衡

    一.       工具 nginx-1.8.0 apache-tomcat-6.0.33 二.    目标 实现高性能负载均衡的Tomcat集群: 三.    步骤 1.首先下载Nginx,要下载稳定 ...

随机推荐

  1. XXE漏洞复现步骤

    XXE漏洞复现步骤 0X00XXE注入定义 XXE注入,即XML External Entity,XML外部实体注入.通过 XML 实体,”SYSTEM”关键词导致 XML 解析器可以从本地文件或者远 ...

  2. 关于在osgearth 中 出现 arial.ttf : file not handled 的问题

    这是由于配置osg时 freetype 插件没有配置到位. 我个人的解决方法 打开CMAKE,点击advance,不勾选OSG_TEXT_USE_FONTCONFIG. 同时将freetype路径设置 ...

  3. 设置允许外网访问MySQL

    1:设置mysql的配置文件     /etc/mysql/my.cnf      找到 bind-address  =127.0.0.1  将其注释掉://作用是使得不再只允许本地访问:  重启my ...

  4. H5监听浏览器滚动条scrollbar

    监听滚动条scrollbar(适配手机) 1. document.documentElement.scrollHeight:整个html的高度,含被隐藏界面高度 2. window.pageYOffs ...

  5. centos6.5下编译安装单实例MySQL5.1

    MySQL5.1版本安装3步曲: 1) ./config 指定编译安装参数 2) make 3) make install 查看系统版本号 [root@meinv01 ~]# cat /etc/red ...

  6. TCP协议可靠性是如何保证之滑动窗口,超时重发,序列号确认应答信号

    原创文章首发于公众号:「码农富哥」,欢迎收藏和关注,如转载请注明出处! TCP 是一种提供可靠性交付的协议. 也就是说,通过 TCP 连接传输的数据,无差错.不丢失.不重复.并且按序到达. 但是在网络 ...

  7. Red Team 指南--第2章开源情报(OSINT)侦察

    第2章开源情报(OSINT)侦察 贡献者:伊恩·巴维斯翻译:BugMan 哇,慢点牛仔吧!在我们深入探讨“做性感时光”(笑话)红队闻名的黑客冒险,还有一些作业要做.五分之一的专业人士从未学习或做过任何 ...

  8. R语言入门:向量索引

    这节的内容是建立在之前我们对R语言最基本向量赋值的基础之上的,笔者本人学完R当中向量的索引感觉异常舒适,因为这个比Python的索引爽多了,是什么值开始索引就从哪里开始索引,到哪里结束就在哪里结束,而 ...

  9. centos7.x中安装SQL Server

    本文内容是采集的好几位博主的博文进行的一个整合,内容更为精准和详尽,以下是我参照的几篇博文地址: 微软官方文档:https://docs.microsoft.com/zh-cn/sql/linux/s ...

  10. 一行代码解决MacBook Pro安装VSCode没有应用图标问题

    笔者今天升级了VSCode,安装完后发现Dock(程序坞)没有VSCode的图标了,导致切换应用非常不方便. 具体情况就像下面这张图,VSCode明明开着,但是在Dock找不到VSCode了. 解决办 ...