如何通过traefik路由到一个暴露两个端口的docker swarm服务?

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

[RabbitMq通过端口15672提供管理GUI,并且客户端通过端口5672连接到消息代理

我的环境:docker swarm服务器版本:19.03.5图片:“ traefik:v2.0.2”图片:rabbitmq:management-alpine

我可以在https://mq.mydom.comexample浏览Rabbit MQ管理页面将此作为我的compose.yml的一部分,用于docker stack deploy

  mq:
    deploy:
      labels:
        - "traefik.enable=true"
        - "traefik.http.routers.mq-service.rule=Host(`mq.mydom.comexample`)"
        - "traefik.http.services.mq-service.loadbalancer.server.port=15672"
        - "traefik.http.routers.mq-service.entrypoints=websecure"
        - "traefik.http.routers.mq-service.tls.certresolver=mytlschallenge"

现在我也希望连接到同一服务中的RabbitMq消息代理但我不了解traefik语法。尝试过变化而没有成功。这是可能显示我想要实现的那些变化之一:

  mq:
    deploy:
      labels:
        - "traefik.enable=true"
        - "traefik.http.routers.mq-service.rule=Host(`mq.mydom.comexample`)"
        - "traefik.http.services.mq-service.loadbalancer.server.port=15672"
        - "traefik.http.routers.mq-service.entrypoints=websecure"
        - "traefik.http.routers.mq-service.tls.certresolver=mytlschallenge"
        # so far same as above

        - "traefik.http.routers.mq-connect.rule=Host(`mq-connect.mydom.comexample`)"
        - "traefik.http.services.mq-connect.loadbalancer.server.port=5672"

浏览https://mq.mydom.comexamplehttps://mq-connect.mydom.comexample都回应404页面未找到

telnet mq.mydom.com示例443telnet mq-connect.mydom.com示例443两者都连接:转义字符为'^]'。

如何告诉traefik路由我想要什么?

docker routing rabbitmq docker-swarm traefik
1个回答
0
投票

我已经完成了有关Traefik V2的更多研究。多个端点的解决方案是显式命名您的服务。这是一个例子:

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