【保姆级】| 从零开始:Docker化部署Nginx负载均衡集群
·
Docker化部署Nginx负载均衡集群(保姆级教程)
一、准备工作
-
安装Docker
sudo apt update sudo apt install docker.io docker-compose sudo systemctl enable --now docker -
创建项目目录
mkdir nginx-lb && cd nginx-lb mkdir config upstream1 upstream2 upstream3
二、配置后端服务
-
在每个上游目录创建
index.htmlecho "<h1>Backend Server 1</h1>" > upstream1/index.html echo "<h1>Backend Server 2</h1>" > upstream2/index.html echo "<h1>Backend Server 3</h1>" > upstream3/index.html -
创建后端Dockerfile
FROM nginx:alpine COPY index.html /usr/share/nginx/html
三、配置负载均衡器
- 创建Nginx配置文件
config/nginx.confevents { worker_connections 1024; } http { upstream backend { server upstream1:80; server upstream2:80; server upstream3:80; } server { listen 80; location / { proxy_pass http://backend; proxy_set_header Host $host; } } }
四、创建Docker Compose文件
version: '3.8'
services:
lb:
image: nginx:alpine
ports:
- "8080:80"
volumes:
- ./config/nginx.conf:/etc/nginx/nginx.conf:ro
depends_on:
- upstream1
- upstream2
- upstream3
upstream1:
build: ./upstream1
expose:
- "80"
upstream2:
build: ./upstream2
expose:
- "80"
upstream3:
build: ./upstream3
expose:
- "80"
networks:
default:
driver: bridge
五、部署与测试
-
启动集群
docker-compose up -d --build -
验证服务
curl http://localhost:8080多次执行将轮询显示不同后端内容:
<h1>Backend Server 1</h1> <h1>Backend Server 2</h1> <h1>Backend Server 3</h1> -
监控日志
docker-compose logs -f lb
六、架构说明
客户端 → 负载均衡器(LB) → {后端1, 后端2, 后端3}
(8080端口) (80端口容器组)
- 负载算法:默认轮询分发请求
- 网络拓扑:通过Docker网络自动互联
- 扩展性:新增后端只需添加服务条目
提示:生产环境建议添加健康检查、TLS加密和日志持久化。通过调整
upstream模块参数可实现加权轮询、IP哈希等高级策略。
更多推荐
所有评论(0)