Haproxy负载均衡
Haproxy负载均衡
参考资料
- https://www.haproxy.com/blog/how-to-run-haproxy-with-docker (复现成功,但使用的是Haproxy-alpine镜像)
- https://hub.docker.com/_/haproxy/ (Haproxy官方镜像)
- https://blog.csdn.net/xiaojin21cen/article/details/103873423 (Haproxy参数介绍) ## 踩坑
- 在docker run构建容器时, 若后面加上bash参数, 容器不会退出, 但是容器内的Haproxy服务会自动退出
- 对docker网络理解不深, 多个容器使用默认网络时不会提供DNS解析服务 ##
容器构建步骤(方式一) ### 自定义Docker网络 ### 构建Web服务
1
docker network create --driver=bridge mynetwork
注意: 由于多个容器已经指明了自定义网络, 这里的容器名可以根据Docker的DNS解析服务解析到对应的容器IP ### 构建Haproxy配置文件1
2
3docker run -d --name web1 --net mynetwork nginx
docker run -d --name web2 --net mynetwork nginx
docker run -d --name web3 --net mynetwork nginx### 构建Dockerfile1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19global
daemon
maxconn 256
defaults
mode tcp
timeout connect 5000ms
timeout client 50000ms
timeout server 50000ms
frontend ft_web
bind *:8000
default_backend bk_web
backend bk_web
balance roundrobin
server server1 web1:80 check
server server2 web2:80 check
server server3 web3:80 check### 构建自定义的Haproxy镜像和容器1
2FROM haproxy:latest
COPY haproxy.cfg /usr/local/etc/haproxy/haproxy.cfg### 最终效果1
2docker build -t my-haproxy-image .
docker run -d --name my-haproxy-container -p 8000:8000 --net mynetwork my-haproxy-image
容器构建步骤(方式二)
构建docker-compose.yml文件
1 |
|
构建haproxy.cfg文件
1 |
|
运行容器群
1 |
|
最终效果
Haproxy负载均衡
https://d4wnnn.github.io/2023/07/21/Others/Haproxy负载均衡/