docker部署nginx负载均衡
时间: 2025-06-01 07:14:47 浏览: 13
### 使用 Docker 部署 Nginx 并实现负载均衡
#### 1. 准备工作
在开始部署之前,确保已经安装并配置好 Docker 环境。如果尚未安装 Docker,请参考官方文档完成安装[^5]。
#### 2. 创建 Nginx 容器
运行以下命令创建两个 Nginx 容器,分别用于模拟后端服务:
```bash
docker run -d --name nginx1 -p 8081:80 nginx
docker run -d --name nginx2 -p 8082:80 nginx
```
上述命令会启动两个 Nginx 容器,并将容器的 80 端口映射到主机的 8081 和 8082 端口[^1]。
#### 3. 配置 Nginx 负载均衡
接下来需要创建一个 Nginx 容器作为负载均衡器,并为其指定配置文件。首先,创建一个 `default.conf` 文件,内容如下:
```nginx
upstream backend {
server 127.0.0.1:8081;
server 127.0.0.1:8082;
}
server {
listen 80;
location / {
proxy_pass http://backend;
}
}
```
该配置文件定义了一个名为 `backend` 的上游服务器组,包含两个后端服务地址(即前面创建的两个 Nginx 容器)。Nginx 会根据默认的轮询算法将请求分发给这两个后端服务[^3]。
将此配置文件保存为 `default.conf`,然后使用以下命令启动 Nginx 负载均衡容器:
```bash
docker run -d --name nginx-lb -p 80:80 -v $(pwd)/default.conf:/etc/nginx/conf.d/default.conf:ro nginx
```
此命令会启动一个新的 Nginx 容器,并将其配置文件挂载到容器内的 `/etc/nginx/conf.d/default.conf` 路径[^2]。
#### 4. 验证负载均衡功能
打开浏览器或使用 `curl` 命令访问宿主机的 80 端口:
```bash
curl http://localhost/
```
每次访问时,Nginx 会根据轮询算法将请求转发到不同的后端服务。可以通过修改后端容器的内容来验证请求是否被正确分发。例如,在每个后端容器中编辑其默认页面:
```bash
docker exec -it nginx1 sh
echo "This is server 1" > /usr/share/nginx/html/index.html
exit
docker exec -it nginx2 sh
echo "This is server 2" > /usr/share/nginx/html/index.html
exit
```
再次访问 `http://localhost/`,可以看到页面内容会在 “This is server 1” 和 “This is server 2” 之间切换[^1]。
#### 5. 常见问题处理
- 如果容器未正常运行,可以使用以下命令查看日志以排查问题:
```bash
docker logs nginx-lb
```
- 如果出现 502 错误,可能是因为后端容器未正确启动。此时可以尝试重启相关容器:
```bash
docker start nginx1
docker start nginx2
```
---
###
阅读全文
相关推荐

















