【问题标题】:Traefik 2.1 does not forward requestTraefik 2.1 不转发请求
【发布时间】:2020-01-01 18:55:14
【问题描述】:

我想使用 Traefik 作为后端的负载平衡器,它正在侦听端口 2500。应该有两个后端容器处理端口80 上的请求。 Traefik 仪表板应该在端口8080 上可用。我还希望后端容器在崩溃时自动重启。

当我使用docker-compose --compatibility up --build 运行下面的docker-compose 文件时,我可以访问本地主机25002501 上的两个后端。但是,后端应该只能通过端口80 上的 Traefik 使用。不幸的是,我无法访问端口80 上的后端。感谢您的帮助。

version: "3.4"

services:
  backend:
    deploy:
        replicas: 2
    build: .
    ports:
      - "2500-2501:2500"
    restart: always
    healthcheck:
      test: curl http://127.0.0.1:2500 -s -f -o /dev/null || exit 1
      interval: 10s
      timeout: 10s
      retries: 3
  reverse-proxy:
    image: traefik
    command:
      - --api.insecure=true
      - --providers.docker=true
      - --entrypoints.web.address=:80
    ports:
      - 80:80
      - 8080:8080
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock

【问题讨论】:

    标签: docker docker-compose load-balancing reverse-proxy traefik


    【解决方案1】:

    从后端服务中删除暴露的端口。添加了在 127.0.0.1:80 --> 127.0.0.1:2500 上工作的后端路由器。还为 traefik 暴露了 2500 端口。

    version: "3.4"
    
    services:
      backend:
        deploy:
            replicas: 2
        build: .
        #############################################################################
        #ports:
        #  - "2500-2501:2500"
        #############################################################################
        labels:
            traefik.enable: true
            traefik.http.routers.backend.rule: Host(`127.0.0.1`)
            traefik.http.routers.backend.entrypoints: web
            traefik.http.services.backend_service.loadbalancer.server.port: 2500
        #############################################################################        
        restart: always
        healthcheck:
          test: curl http://127.0.0.1:2500 -s -f -o /dev/null || exit 1
          interval: 10s
          timeout: 10s
          retries: 3
      reverse-proxy:
        image: traefik
        command:
          - --api.insecure=true
          - --providers.docker=true
          - --entrypoints.web.address=:80
        ports:
          - 80:80
          - 8080:8080
        #############################################################################
          - 2500:2500
        #############################################################################
        volumes:
          - /var/run/docker.sock:/var/run/docker.sock
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-12
      • 2020-01-11
      • 1970-01-01
      • 2021-10-19
      • 1970-01-01
      相关资源
      最近更新 更多