Балансировщик нагрузки Traefik не перенаправляет порт - PullRequest
0 голосов
/ 09 марта 2019

Итак, я пытаюсь следовать этому примеру здесь (https://blog.tylerbuchea.com/docker-swarm-traefik-lets-encrypt-ssl-certificates/). По сути, это рой Docker, который имеет файл-контейнер traefik.toml и traefik.yaml. получите ssl, так как у меня уже есть рой.

Вот проблема. В приведенном выше примере есть только один контейнер, который сразу же использует command для ускорения приложения узла. Я бы предпочел сделать что-то вроде следующего.

Вот мой файл docker-compose:

version: "3.3"

networks:
  default:
    external: false
  proxy:
    external: true

services:
  back:
    image: patientplatypus/lowtechback:latest
    ports: 
      - '5000:5000'
    networks:
      - proxy
      - default
    deploy:
      replicas: 3
      restart_policy:
        condition: on-failure
        max_attempts: 5
        window: 120s
      labels:
        - "traefik.docker.backend=back"
        - "traefik.port=5000"
        - "traefik.frontend.rule=Host:lowteck.com"
        - "traefik.docker.network=proxy"
  front:
    image: patientplatypus/lowtechfront:latest
    ports: 
      - '3000:3000'
    networks:
      - proxy
      - default
    depends_on:
      - back
    deploy:
      replicas: 3
      restart_policy:
        condition: on-failure
        max_attempts: 5
        window: 120s
      labels:
        - "traefik.docker.backend=front"
        - "traefik.port=3000"
        - "traefik.frontend.rule=Host:lowteck.com"
        - "traefik.docker.network=proxy"

Обратите внимание, что внешний интерфейс ищет входящие данные из traefik.port=3000, а затем перенаправит их на 3000 в развернутом изображении, используя ports: 3000:3000.

Теперь вот мой traefik.yaml файл:

version: '3.3'

networks:
  proxy:
    external: true

configs:
  traefik.toml:
    file: ./traefik.toml

services:

  traefik:
    image: traefik
    ports:
      - "80:3000"
      - "8080:8080"
      - "443:443"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    configs:
      - source: traefik.toml
        target: /etc/traefik/traefik.toml
    labels:
      - "traefik.enable=false"
    networks:
      - proxy
    deploy:
      replicas: 1
      placement:
        constraints: [node.role == manager] 

Итак, это берет данные, поступающие из порта 80, и перенаправляет их в порт 3000, верно? Так что я ожидаю, что когда кто-то переходит на lowteck.com, он должен прыгать 80-traefik-3000->3000-docker compose-3000->3000-myImage. Вместо этого я получаю unable to connect. Я протестировал lowteck.com:3000, и он работает, так что я делаю не так?

...