1.创建一个工程目录haproxy
[root@wen ~]# mkdir haproxypro
[root@wen ~]# cd haproxypro/
2.下载haproxy镜像
[root@wen haproxypro]# docker pull haproxy:2.0.29-alpine
3.基于基础镜像制作web应用镜像
[root@wen haproxypro]# cat Dockerfile
FROM centos
RUN rm /etc/yum.repos.d/* && yum clean all
ADD CentOS8-Base.repo /etc/yum.repos.d/
RUN yum -y install httpd
ADD index.html /var/www/html/
CMD /usr/sbin/httpd -D FOREGROUND
[root@wen haproxypro]# echo "httpd v11111" >index.html
[root@wen haproxypro]# docker build -t centos-httpd:v1 .
4.准备haproxy.cfg配置文件
[root@wen haproxypro~]# cat haproxy.cfg
global
log 127.0.0.1 local0 info
maxconn 256
chroot /usr/local/etc/haproxy
uid 1000
gid 1000
daemon
defaults
mode http
timeout connect 1500ms
timeout client 5000ms
timeout server 5000ms
option httpclose
option dontlognull
option forwardfor
option redispatch
option abortonclose
frontend http-in
bind *:80
log global
default_backend servers
backend servers
option httpchk GET /index.html
balance roundrobin
server server1 weba:80 check inter 2000 rise 2 fall 2
server server2 webb:80 check inter 2000 rise 2 fall 2
server server3 webc:80 check inter 2000 rise 2 fall 2
listen stats
mode http
bind 0.0.0.0:9999
stats enable
log global
stats uri /status
stats auth haadmin:qm123com
5.创建docker-compose.yml编排文件
[root@wen haproxypro]# vi docker-compose.yml
services:
weba:
image: centos-httpd:v1
webb:
image: centos-httpd:v1
webc:
image: centos-httpd:v1
haproxy:
image: haproxy:2.0.29-alpine
volumes:
- ./haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg
links:
- weba
- webb
- webc
ports:
- "80:80"
- "9999:9999"
6.启动应用
[root@wen haproxypro]# docker-compose up

7.验证容器是否全部启动

8.验证负载均衡

Leave a Reply