Docker 无法在自定义域上同时运行 apache 和 nginx 服务

问题描述 投票:0回答:1

首先感谢您的宝贵回答,我正在与您分享 docker-compose.yml 代码;我没有太多 docker 知识,但我需要帮助,因为我需要在这个项目中使用 docker。

我需要同时在apache和nginx中使用端口80,因为当我将其置于生产模式时,我需要能够从所有域访问它,并且总共将有3个域(其中2个是子域) )

docker-compose.yml:

version: '3'

services:
  frontend:
    image: php:apache
    volumes:
      - "./frontend:/var/www/html"
    restart: always
    networks:
      - domain-net
    environment:
      VIRTUAL_HOST: domain.io

  member-frontend:
    image: nginx:alpine
    volumes:
      - "./member-frontend:/usr/share/nginx/html"
      - "./nginx/member.conf:/etc/nginx/conf.d/default.conf"
    ports:
      - "8081:80"
    restart: always
    networks:
      - domain-net
      - nginx-proxy
    environment:
      VIRTUAL_HOST: member.domain.io

  backend:
    image: php:apache
    volumes:
      - "./backend:/var/www/html/backend"
    restart: always
    networks:
      - domain-net
    environment:
      VIRTUAL_HOST: api.domain.io

networks:
  domain-net:
  nginx-proxy:
    external:
      name: nginx-proxy

我使用“docker-compose up -d”命令成功启动了服务,没有错误,但无法访问文件。

最重要的是,它应该在成员域上调用 nginx,但它会以 apache 的形式获取它。我将等待您的意见和解决方案,谢谢(:

当我期望它正常工作时,它将所有服务重定向到同一个 apache 服务。

docker apache nginx docker-compose nginx-reverse-proxy
1个回答
0
投票

我猜你可以将不同的 IP 绑定到每个 Web 服务,如以下页面建议的那样 https://serverfault.com/a/508325

或者,如果您无法将不同的 IP 绑定到每个 Web 服务,则认为您可以在将流量路由到相应服务的所有服务前面构建一个代理,例如 Nginx 或 Apache 服务监听来自 IP:8081 的所有流量并将其配置为进行相应的重定向。 希望有帮助

© www.soinside.com 2019 - 2024. All rights reserved.