Добавить не docker сервис в traefik v2 - ресурсы сайта отсутствуют - PullRequest
2 голосов
/ 27 января 2020

Обновление вопроса ниже!

Я настроил traefik в последние дни, похоже, он отлично работает для docker контейнеров. Что не работает, так это настройка не docker бэкэнда. У меня есть панель мониторинга сетевых данных (https://github.com/netdata/netdata) на порту 19999 на хосте.

Я определил провайдера файлов:

[providers.file]
  directory = "/home/myname/traefik"
  filename = "providers.toml"
  watch = true

Где я определил служба и маршрутизатор для панели мониторинга сетевых данных:

[http.routers]
  [http.routers.netdata]
    service = "netdata"
    middlewares = ["replacepath"]
    rule = "Host(`my.host.name`) && Path(`/netdata`)"

[http.middlewares]
  [http.middlewares.replacepath.replacePath]
    path = "/"

[http.services]
  [http.services.netdata]
      [http.services.netdata.loadBalancer]
        [[http.services.netdata.loadBalancer.servers]]
          url = "http://192.168.178.60:19999/" ---> my server local ip 

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

Однако, когда я Посещение http://my.host.name/netdata мне кажется, что это только сырое html, я получаю 404s за. css и. js содержание.

Что мне нужно сделать, чтобы все файлы в каталоге сайта доставлялись? Я чувствую, что есть простое решение этого, которое я не могу увидеть прямо сейчас ...

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

  • Я попытался использовать "http://localhost: 19999 " вместо локального ip, но безуспешно (приводит к ошибке шлюза)
  • Я также пытался установить контейнер traefik на «хост» сети, потому что контейнеры должны быть изолированы от остального хоста, поэтому traefik не может связаться с сервером netdata, но, как я уже сказал, я получаю хотя бы часть веб-сайт, так что это не может быть проблемой?

Обновление № 1, 30 января 20:

После еще нескольких попыток и неудачной попытки заставить его работать с nginx Я понял, что проблема не в самом прокси. Я заметил, что любой сервис, который я запускаю на уровне root (то есть не правила пути в traefik или location / в nginx), работает, но все остальное, которое получает путь / местоположение, не работает или не работает вообще. Один сервис, который я хотел прокси через маршрут - это панель управления моего домашнего моста (https://github.com/nfarina/homebridge), но, похоже, у Angular проблемы с пользовательскими путями. Та же проблема с моей приборной панелью netdata или сайтом статуса onionbox. Я оставляю этот вопрос открытым, возможно, кто-то найдет (хакерский) способ заставить его работать.

...