使用 Docker 部署 Nginx 反向代理
温馨提示:
本文最后更新于 2024年07月22日,已超过 254 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我。
使用 Docker 部署 Nginx 反向代理
前言
本文档将介绍如何使用 Docker 部署 Nginx 反向代理,并配置它以转发请求到运行在不同容器中的多个后端服务。
环境
- Docker 19.03 或更高版本
- Docker Compose 1.25 或更高版本
步骤
- 创建 Dockerfile
```dockerfile FROM nginx:latest
COPY nginx.conf /etc/nginx/nginx.conf
EXPOSE 80 ```
- 创建 nginx.conf 文件
```nginx upstream backend { server backend1:8080; server backend2:8080; }
server { listen 80; server_name example.com;
location / {
proxy_pass http://backend;
}
} ```
- 创建 docker-compose.yml 文件
```yaml version: '3.7'
services: nginx: build: . ports: - "80:80"
backend1:
image: nginx:latest
ports:
- "8080:80"
command: sh -c "sleep infinity"
backend2:
image: nginx:latest
ports:
- "8080:80"
command: sh -c "sleep infinity"
```
- 构建并运行容器
bash
docker-compose up -d
- 验证配置
在浏览器中访问 http://example.com
,您应该能够看到来自 backend1
和 backend2
服务的响应。
说明
nginx.conf
文件中定义了两个后端服务backend1
和backend2
,它们分别监听端口8080
。docker-compose.yml
文件定义了三个容器:nginx
、backend1
和backend2
。nginx
容器使用nginx.conf
配置文件,并暴露端口80
。backend1
和backend2
容器运行的是nginx
镜像,并暴露端口8080
。command: sh -c "sleep infinity"
指令用于保持容器一直运行。
其他
- 可以根据实际需要修改
nginx.conf
文件中的配置。 - 可以使用不同的 Docker 镜像来构建后端服务。
- 可以使用其他工具来管理 Docker 容器,例如 Docker Swarm 或 Kubernetes。
结语
本文档介绍了使用 Docker 部署 Nginx 反向代理的基本步骤。通过配置反向代理,可以轻松地将请求转发到多个后端服务,并提高应用程序的可扩展性和可用性。
正文到此结束
- 本文标签: Linux
- 本文链接: https://blog.sandy1029.cloud/article/92
- 版权声明: 本文由nisan原创发布,转载请遵循《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权