РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗dcTrMwSp 27 of 28 menu
◀ ▶

Отрезание префикса в Docker

Отрезание префикса убирает папку из адреса, прежде чем запрос попадёт в контейнер. Браузер по-прежнему открывает /api в строке, а whoami получает путь без этой папки. Так один и тот же образ отвечает на корень, а снаружи адрес остаётся с префиксом.

Правило PathPrefix(`/api`) && Host(`site.localhost`) ограничивает маршрут, посредник cut с prefixes=/api вешают на роутер api. Сервис whoami без ports и прокси в одном описании:

services: proxy: image: traefik:3 command: - --providers.docker=true - --providers.docker.exposedbydefault=false - --entrypoints.web.address=:80 ports: - "80:80" volumes: - /var/run/docker.sock:/var/run/docker.sock:ro whoami: image: traefik/whoami labels: - traefik.enable=true - traefik.http.middlewares.cut.stripprefix.prefixes=/api - traefik.http.routers.api.rule=PathPrefix(`/api`) && Host(`site.localhost`) - traefik.http.routers.api.middlewares=cut

Запуск в фоне:

docker compose up -d

По адресу http://site.localhost/api текст whoami показывает путь, который видит контейнер. Папка /api в этом пути не повторяется: контейнер видит путь без /api.

Опишите сервис echo на traefik/whoami с префиксом /v1, хостом echo.localhost, посредником trim и полным прокси в том же файле.

Откройте http://echo.localhost/v1 и по тексту whoami убедитесь, что внутри контейнера путь без /v1.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить