Traefik - Объект не найден 404 - PullRequest
       10

Traefik - Объект не найден 404

0 голосов
/ 04 февраля 2019

У меня есть следующие правила:

[backends]
  [backends.pma]
    [backends.pma.servers.server1]
    url = "http://phpmyadmin:80"
  [backends.rabbitmq]
    [backends.rabbitmq.servers.server1]
    url = "http://rabbitmq:15672"

[frontends]
  [frontends.pma]
  backend = "pma"
    [frontends.pma.routes.test_1]
    rule = "Host:pma.example.it"
    passHostHeader = true
  [frontends.rabbitmq]
  backend = "rabbitmq"
    [frontends.rabbitmq.routes.test_1]
    rule = "Host:pma.example.it;Path:/rabbitmq"

Хост pma.example.it работает, я вижу phpmyadmin, хост pma.example.it/rabbitmq не работает, у меня {"error":"Object Not Found","reason":"Not Found"}.

Но из контейнера traefik, если я наберу curl http://rabbitmq:15672, это работает.Есть идеи?

Ответы [ 3 ]

0 голосов
/ 04 февраля 2019

Не могли бы вы попытаться использовать PathPrefix вместо Path как правило.

Обратите внимание, в вашей конфигурации есть небольшая опечатка:

[backends]
  [backends.pma] # <---
  [backends.pma.servers.server1]
    url = "http://phpmyadmin:80"

[backends.rabbitmq] # <---
  [backends.rabbitmq.servers.server1]
    url = "http://rabbitmq:15672"

[frontends]
  [frontends.pma]
  backend = "pma"
    [frontends.pma.routes.test_1]
    rule = "Host:pma.example.it"
    passHostHeader = true
  [frontends.rabbitmq]
  backend = "rabbitmq"
    [frontends.rabbitmq.routes.test_1]
    rule = "Host:pma.example.it;Path:/rabbitmq"
0 голосов
/ 05 февраля 2019

Путь в ваших двух примерах не одинаков.Когда вы переходите к pma.example.it/rabbitmq, ваш экземпляр RabbitMQ фактически получает rabbitmq:15672/rabbitmq и возвращает ошибку Object Not Found.

Возможно, вы хотите PathPrefixStrip вместо Path в вашем правиле веб-интерфейса.Он будет совпадать с путями, начинающимися с /rabbitmq, и удалит их перед передачей на сервер.

rule = "Host:pma.example.it;PathPrefixStrip:/rabbitmq"
0 голосов
/ 04 февраля 2019

В конфигурации сервера отсутствует строка

[backends]
   [backends.pma]
   [backends.pma.servers]      # <----------add this
      [backends.pma.servers.server1]
         url = "http://phpmyadmin:80" 

(то же самое для backend.rabbitmq)

...