Traefik规则需要子域解决方案 使用Traefik 1的示例使用Traefik 2的示例

我不想在traefik后面运行应用程序,而不是作为子域运行,而是像xyz.abc.com/m1或xyz.abc.com/m2等。 哪个标签适合它。我已尝试使用PathPrefix,但无法正常工作。示例应用程序Joomla部署在docker swarm模式下。我可以同时使用Nginx或Haproxy吗?如果是这样,如何?

saswertuygjhjh 回答:Traefik规则需要子域解决方案 使用Traefik 1的示例使用Traefik 2的示例

将多个应用程序放在同一个名称后面时,应用程序很有可能需要知道其URL前缀不在根目录(因为大多数应用程序都希望在根目录部署)。因此,可能也需要研究一下。

在Traefik方面,堆栈文件可能看起来像这样。这是在Swarm模式下运行的(因为您提到了Swarm),这要求Traefik标签在服务上,而不在容器上。因此,它们必须在deploy.labels定义之内,而不仅仅是labels

使用Traefik 1的示例

version: "3.7"

services:
  proxy:
    image: traefik:1.7
    command: --docker --docker.swarmMode
    ports:
      - 80:80
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock

  app1:
    image: your-image-for-app1
    deploy:
      labels:
        traefik.backend: app1
        traefik.frontend.rule: PathPrefix:/m1
        traefik.port: 80

  app2:
    image: your-image-for-app2
    deploy:
      labels:
        traefik.backend: app2
        traefik.frontend.rule: PathPrefix:/m2
        traefik.port: 80

使用Traefik 2的示例

version: "3.7"

services:
  proxy:
    image: traefik:2.0
    command: --providers.docker --providers.docker.swarmMode
    ports:
      - 80:80
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock

  app1:
    image: your-image-for-app1
    deploy:
      labels:
        traefik.http.routers.app1.rule: PathPrefix(`/m1`)
        traefik.http.services.app1.loadbalancer.server.port: 80

  app2:
    image: your-image-for-app2
    deploy:
      labels:
        traefik.http.routers.app2.rule: PathPrefix(`/m2`)
        traefik.http.services.app2.loadbalancer.server.port: 80
本文链接:https://www.f2er.com/3056469.html

大家都在问