Я использую сервис Docker (OwnTracks Recorder), использующий Traefik в качестве обратного прокси-сервера для аутентификации. Это делается через docker-compose; Вот ярлыки на сервисе:
labels:
- traefik.enable=true
- traefik.frontend.rule=PathPrefixStrip:/owntracks
- traefik.frontend.auth.basic=user1:hash1,user2:hash2
Это работает как задумано. Проблема, которую я пытаюсь решить, состоит в том, что Owntracks на самом деле имеет два элемента: панель мониторинга, которая будет на https://example.com/owntracks, и API, на https://example.com/owntracks/pub. Хотя сам Owntracks не имеет встроенной аутентификации, Я хотел бы ограничить панель мониторинга только user1, позволяя всем аутентифицированным пользователям получать доступ к API. Документация Owntrack использует ngnix в качестве примера, который, я думаю, в моем случае может выглядеть примерно так:
location /owntracks/dashboard/ {
auth_basic ....;
proxy_pass http://127.0.0.1:8083/;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
location /owntracks/pub/ {
auth_basic ....;
proxy_pass http://127.0.0.1:8083/pub/;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
Проблема в том, что я не могу понять, как настроить что-то подобное в Traefik. Насколько я понимаю, вы получаете один "ярлык" traefik.frontend.auth.basic для всего этого контейнера? В идеале, я бы предпочел установить это с помощью меток в файле docker-compose Owntracks, чтобы избежать необходимости настраивать конфигурацию для каждой службы в самом Traefik (т. Е. Чтобы я мог рассчитывать на автоматическое обнаружение службы Traefik).
Любые указатели приветствуются.