企业—Docker容器之haproxy实现Docker容器(nginx)的负载均衡

部署如下:

1.添加docker-compose环境变量

[root@server1 ~]# ls
docker-compose-Linux-x86_64-1.22.0  
[root@server1 ~]# mv docker-compose-Linux-x86_64-1.22.0 /usr/local/bin/
[root@server1 ~]# cd /usr/local/bin/
[root@server1 bin]# chmod +x docker-compose-Linux-x86_64-1.22.0 
[root@server1 bin]# ln -s docker-compose-Linux-x86_64-1.22.0 docker-compose

企业—Docker容器之haproxy实现Docker容器(nginx)的负载均衡_第1张图片
2.下载haproxy,nginx镜像并且将其导入本地

[root@server1 ~]# docker load -i haproxy.tar 
[root@server1 ~]# docker load -i nginx.tar 

3.建立/mnt/compose目录编写docker-compose.yml添加负载调度策略

[root@server1 ~]# mkdir -p /mnt/compose
[root@server1 ~]# cd /mnt/compose/
[root@server1 compose]# vim docker-compose.yml
文件编辑内容如下:
//网页web1及其相应的挂载点及其暴露端口
web1:
      image: nginx
      expose:
              - 80
      volumes:
              - ./web1:/usr/share/nginx/html
//web2同web1
web2:
      image: nginx
      expose:
              - 80
      volumes:
              - ./web2:/usr/share/nginx/html
//添加haproxy
haproxy:
         image: haproxy
         volumes:
                 - ./haproxy/haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg:ro
         links:
                 - web1
                 - web2
         ports:
                 - "80:80"
         expose:
                 - 80

4.在当前目录下建立web1及其web2目录并且添加轮询调度的web1及其web2界面的相应内容
企业—Docker容器之haproxy实现Docker容器(nginx)的负载均衡_第2张图片
5.在当前目录下建立haproxy的目录并且添加haproxy的配置文件

[root@server1 compose]# pwd
/mnt/compose
[root@server1 compose]# mkdir haproxy
[root@server1 compose]# cd haproxy/
[root@server1 haproxy]# vim haproxy.cfg
文件编辑内容如下:
global
        log 127.0.0.1 local0
        log 127.0.0.1 local1 notice
defaults
        log global
        mode http
        option httplog
        option dontlognull
        timeout connect 5000ms
        timeout client 50000ms
        timeout server 50000ms
        stats uri /status
frontend balancer
        bind 0.0.0.0:80
        default_backend web_backends
backend web_backends
        balance roundrobin
        server server1 web1:80 check
        server server2 web2:80 check

6.在/mnt/compose目录下开启docker-compose并且检查文件是否有问题
企业—Docker容器之haproxy实现Docker容器(nginx)的负载均衡_第3张图片
7.查看docker-compose下生成的镜像
企业—Docker容器之haproxy实现Docker容器(nginx)的负载均衡_第4张图片
8.在浏览器测试
http://172.25.254.1/
//发现web1和web2之间是轮询的
企业—Docker容器之haproxy实现Docker容器(nginx)的负载均衡_第5张图片
企业—Docker容器之haproxy实现Docker容器(nginx)的负载均衡_第6张图片
//查看网页状态:
企业—Docker容器之haproxy实现Docker容器(nginx)的负载均衡_第7张图片
//停止compose_web1_1 容器
企业—Docker容器之haproxy实现Docker容器(nginx)的负载均衡_第8张图片
//再次刷新网页状态发现显示server1为红色
企业—Docker容器之haproxy实现Docker容器(nginx)的负载均衡_第9张图片
//在网页查看发现只能看到server2上的内容
企业—Docker容器之haproxy实现Docker容器(nginx)的负载均衡_第10张图片
//再次开启容器发现server1的状态变为运行
在这里插入图片描述
企业—Docker容器之haproxy实现Docker容器(nginx)的负载均衡_第11张图片

你可能感兴趣的:(企业—Docker容器之haproxy实现Docker容器(nginx)的负载均衡)