Невозможно разрешить URL в Traefik. Ошибка 404 - PullRequest
0 голосов
/ 13 апреля 2020

Проблема, с которой я сталкиваюсь, мне несколько известна, но все же я хотел понять проблему в своей реализации.

У меня есть контейнер Traefik и служебный контейнер. У сервисного контейнера есть определенные маршруты, которые обслуживают страницы. Чтобы передать запрос от Traefik в контейнер службы / приложения, я прикрепил ярлык к своему контейнеру. Метка имеет путь, аналогичный указанному в моем приложении, так что Traefik может перенаправить запрос в бэкэнд-сервис, и, наконец, мой сервис может обработать запрос.

Основная проблема: Все работает нормально и модно до сих пор, но проблема в том, что мое приложение / служба обслуживает несколько страниц c, которые находятся на другом маршруте, не распознаваемом Traefik. Это приведет к ошибке 404. Я не могу найти выход из этой проблемы.

Например: У меня есть служба A, которая обслуживает запрос на http://localhost/blog и все дальнейшие запросы go - localhost / blog / *. Для этого я просто добавил бы метку с PathPrefix (/blog) . Это заставляет все работать, но нет загруженных файлов JS и CSS. Причина этого заключается в том, что мои файлы css и js загружаются из маршрута http://localhost/js и http://localhost/css. Конечно, этот маршрут не распознается Traefik.

Docker -Compose.yml

servicea:
        container_name: servicea-ge
        image: 'servicea'
        restart: always
        labels:
            - traefik.http.routers.servicea.rule=PathPrefix(`/blog`)
        networks:
            - internal-network
        logging:
            driver: json-file
            options: {max-size: 20m, max-file: '5'}
        environment:
            TZ: '${Time_Zone}'
networks:
    internal-network:
        driver: bridge
        name: test

Я пробовал решение, в котором У меня есть добавлено промежуточное программное обеспечение для удаления / blog , но это также вызовет дополнительные проблемы. Теперь домашняя страница загружается успешно, но дальнейшие маршруты, такие как / blog / addblog , начинают работать с ошибкой, так как блог будет удален (связующее ПО полосы рассылки). Например:

- traefik.http.routers.servicea.middlewares=strip-blog
- traefik.http.middlewares.strip-blog.stripprefix.prefixes=/blog

Может ли кто-нибудь предложить решение описанной выше проблемы?

...