多个Docker Nginx容器或单个Nginx Docker容器

时间:2019-04-15 13:47:26

标签: docker nginx containers

我正在寻找具有tld支持的多个nginx容器的最佳实践。请考虑以下docker-compose文件:

frontend:
    build:
      context: nginx/
    hostname: frontend-docker
    ports:
      - "32777:80"

backend:
    build:
      context: nginx/
    hostname: backend-docker
    ports:
      - "33777:80"

proxy:
  image: nginx
  hostname: proxy-docker
  links:
    - frontend
    - backend
  ports:
    - "80:80"

说明如您所见,我可以在localhost:32777和localhost:33777上访问前端和后端,但是当我开始制作产品时,我想在site.com上访问前端,在backend.site上访问后端。 com。在这种情况下,proxy容器将容纳server_name backend.site.com;server_name site.com并为http://frontendhttp://backend

创建反向代理

我的问题是我应该摆脱代理容器并将server_name部分直接放入frontendbackend容器中,甚至建立一个名为{{ 1}}在那里web

通常,以这种方式拆分容器在配置,env变量,构建不同的映像等方面更合适。

1 个答案:

答案 0 :(得分:1)

直接从外部访问frontendbackend容器很可能行不通,因为您不能多次将端口80绑定到主机。

如果frontendbackend是不同的应用程序,则可能需要使用不同的Dockerfile来构建它们的图像。

在使用它的同时,您可能希望研究像https://traefik.io/这样的简单负载平衡解决方案,作为容器的前端。 但这可能对您当前的用例来说是过大的,并且您希望坚持使用上述配置。