原创

使用 Docker 部署 Nginx 反向代理

温馨提示:
本文最后更新于 2024年07月22日,已超过 254 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我

使用 Docker 部署 Nginx 反向代理

前言

本文档将介绍如何使用 Docker 部署 Nginx 反向代理,并配置它以转发请求到运行在不同容器中的多个后端服务。

环境

  • Docker 19.03 或更高版本
  • Docker Compose 1.25 或更高版本

步骤

  1. 创建 Dockerfile

```dockerfile FROM nginx:latest

COPY nginx.conf /etc/nginx/nginx.conf

EXPOSE 80 ```

  1. 创建 nginx.conf 文件

```nginx upstream backend { server backend1:8080; server backend2:8080; }

server { listen 80; server_name example.com;

   location / {
       proxy_pass http://backend;
   }

} ```

  1. 创建 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"

```

  1. 构建并运行容器

bash docker-compose up -d

  1. 验证配置

在浏览器中访问 http://example.com,您应该能够看到来自 backend1backend2 服务的响应。

说明

  • nginx.conf 文件中定义了两个后端服务 backend1backend2,它们分别监听端口 8080
  • docker-compose.yml 文件定义了三个容器:nginxbackend1backend2
  • nginx 容器使用 nginx.conf 配置文件,并暴露端口 80
  • backend1backend2 容器运行的是 nginx 镜像,并暴露端口 8080
  • command: sh -c "sleep infinity" 指令用于保持容器一直运行。

其他

  • 可以根据实际需要修改 nginx.conf 文件中的配置。
  • 可以使用不同的 Docker 镜像来构建后端服务。
  • 可以使用其他工具来管理 Docker 容器,例如 Docker Swarm 或 Kubernetes。

结语

本文档介绍了使用 Docker 部署 Nginx 反向代理的基本步骤。通过配置反向代理,可以轻松地将请求转发到多个后端服务,并提高应用程序的可扩展性和可用性。

正文到此结束