【问题标题】:configure traefik as reverse proxy with docker使用 docker 将 traefik 配置为反向代理
【发布时间】:2020-05-04 15:23:29
【问题描述】:

我正在尝试配置 traefik 以连接我的 3 个 docker 容器。 我尝试使用此配置,但在浏览器控制台上得到了 net::ERR_NAME_NOT_RESOLVED。

  searchservice:
    hostname: searchservice
    image: searchservice:0.0.3-SNAPSHOT
    container_name: searchservice
    networks:
      - es-network 
          #ipv4_address: 172.21.0.12
    ports:
      - 8070:8080
    restart: always
    depends_on:
      - elasticsearch
      - reverseproxy
    labels:
      - "traefik.frontend.rule=PathPrefix:/searchservice,Host:localhost"
      - "traefik.port: 8070"
      - "traefik.enable=true"

  subscriber-service:
    hostname: subscriber-service
    image: subscriberservice:0.0.4-SNAPSHOT
    container_name: subscriber-service

    networks:
      - es-network 
          #ipv4_address: 172.21.0.13
    ports:
      - 8090:8090
    restart: always
    depends_on:
      - mongo1
      - mongo2
      - reverseproxy
    labels:
      - "traefik.frontend.rule=PathPrefix:/api,Host:localhost"
      - "traefik.port: 8090"
      - "traefik.enable=true"

  searchappfront:
    hostname: searchappfront
    image: frontservice:latest
    container_name: searchappfront
    networks:
      - es-network 
    ports:
      - 80:80
    restart: always
    depends_on:
      - subscriber-service
      - searchservice
      - reverseproxy
    labels:
      - "traefik.frontend.rule=PathPrefix:/"
      - "traefik.enable=true"
      - "traefik.port=80"
     # - "traefik.frontend.rule=Host:localhost"

  reverseproxy:
    image: traefik:v2.1
    command:
      - '--providers.docker=true'
      - '--entryPoints.web.address=:80'
      - '--providers.providersThrottleDuration=2s'
      - '--providers.docker.watch=true'
      - '--providers.docker.defaultRule=Host("local.me")'
      - '--accessLog.bufferingSize=0'
    volumes:
      - '/var/run/docker.sock:/var/run/docker.sock:ro'
    #ports:
    #  - '80:80'
    #  - '8080:8080'

searchappfront 是一个 Angular 应用程序,其中 http 端点具有这种模式

http://subscriber-service:8090/
http://searchservice:8070/

如果我使用 localhost 而不是主机名,请求可以正常工作,但我需要将这些容器部署在云实例中。

【问题讨论】:

    标签: docker docker-compose traefik


    【解决方案1】:

    您正在使用 traefik 2,但您的注释是针对 traefik 1。这不起作用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-18
      • 1970-01-01
      • 2021-09-07
      相关资源
      最近更新 更多