переадресация запроса на указанный порт c с маршрутизатором traefik (v2) - PullRequest
2 голосов
/ 17 января 2020

Я использую traefik версии 2 (или 2.x) и хочу перенаправить весь запрос с порта 80 на другой порт, например 8081, с маршрутизатором traefik. Поэтому запрос типа http://localhost/xx будет переадресован на http://localhost: 8081 / xx URL.

Я новичок ie с traefik, и я использую docker для этой конфигурации. Ниже приведена моя docker -compose.yml конфигурация файла. После настройки этой панели инструментов traefik загружается на http://localhost: 8080 / dashboard / # / URL, но переадресация запросов не работает.

version: "3"

services:
  traefik:
    image: "traefik:v2.1.0"
    container_name: "traefik"
    command:
      - "--log.level=DEBUG"
      - "--api.insecure=true"
      - "--providers.docker=true"
      - "--providers.docker.exposedbydefault=false"
      - "--entrypoints.web.address=:80"
    ports:
      - "80:80"
      - "8080:8080"
    volumes:
      - "/var/run/docker.sock:/var/run/docker.sock:ro"

  whoami:
    image: "containous/whoami"
    container_name: "simple-service"
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.whoami.entrypoints=web"
      - "traefik.http.services.whoami.loadbalancer.server.port=8081"
      - "traefik.docker.network=proxy"
      - "traefik.http.routers.whoami.rule=Host(`localhost`)"

Любая помощь по этому вопросу будет приветствоваться.

1 Ответ

1 голос
/ 20 января 2020

вам необходимо сопоставить ваш сервисный порт с 8081

. Это полностью рабочий / протестированный пример, где вы можете получить доступ к whoami
, перейдя к http://whoami.docker.local:8081 или http://whoami.docker.local* 1008. *

version: "3"

services:
    traefik:
        image: traefik
        command:
            - --api.insecure=true
            - --providers.docker=true
        ports:
            - "80:80"
            - "8080:8080"
        volumes:
            - /var/run/docker.sock:/var/run/docker.sock
        labels:
            - traefik.http.routers.api.rule=Host(`traefik.docker.local`)
            - traefik.http.routers.api.service=api@internal

    whoami:
        image: containous/whoami
        ports:
            - "8081:80"
        labels:
            - traefik.http.routers.whoami.rule=Host(`whoami.docker.local`)
            - traefik.http.routers.whoami.service=whoami@docker
            - traefik.http.services.whoami.loadbalancer.server.port=80

он работает на порту 80, а также 8081, согласно вашему запросу.

root@d:~# lsof -i :80,8081

COMMAND     PID USER   FD   TYPE   DEVICE SIZE/OFF NODE NAME
docker-pr 28208 root    4u  IPv6 51666675      0t0  TCP *:tproxy (LISTEN)
docker-pr 28265 root    4u  IPv6 51671715      0t0  TCP *:http (LISTEN)

, но вам может быть легче помочь, если вы объясните, почему вы хотите получить доступ :8081,
потому что используется traefik, поэтому нам не нужно делать такие перенаправления.

...