Traefik перенаправить с одного хоста на другой - PullRequest
0 голосов
/ 04 марта 2020

Мы решили перейти от структуры поддоменов к одному root домену с префиксами пути, но мы получили много старых URL-адресов в inte rnet. Так есть ли способ добавить перенаправление со старого URL на новый? Например, у нас есть субдомен test.example.com, переведенный на example.com/test, я могу правильно получить доступ к сайту со строкой в ​​docker -swarm YAML файле traefik.frontend.rule: Host:example.com;PathPrefixStrip:/test, но когда я пытаюсь добавить перенаправления конфигурации Traefik например:

[http.middlewares]
  [http.middlewares.test-redirectregex.redirectRegex]
    regex = "^https://(*).example.com/)"
    replacement = "^https://example.com/${1}"

Traefik говорит, что не знает, куда направить этот запрос. Если я пытаюсь добавить: traefik.frontend.rule: Host:test.example.com,example.com;PathPrefixStrip:/test Traefik добавляет префикс для обоих хостов. Есть ли способ решить эту проблему без добавления второго обратного прокси-сервера?

1 Ответ

0 голосов
/ 05 марта 2020

Предполагая, что вы используете Traefik 2.1, вы можете использовать следующее промежуточное ПО для Traefik

[http.middlewares]
  [http.middlewares.blog-redirect.redirectRegex]
    regex = "^(https?://)(.*).example.com/(.*)$"
    replacement = "${1}example.com/${2}/${3}"
    permanent = true

Важным шагом для активации вышеуказанного промежуточного программного обеспечения является добавление метки ниже на соответствующем маршрутизаторе и службе. Например, если у вас есть blog служба, и вы для нее определили blog маршрутизатор, то вам нужно добавить приведенную ниже таблицу к службам

traefik.http.routers.blog.middlewares=blog-redirect

Кроме того, ваше правило маршрута должно выглядеть следующим образом Приведенное ниже правило позволяет обрабатывать оба домена (или вы определяете несколько маршрутов для каждой услуги)

- traefik.http.routers.blog.rule=Host(`example.com`) && Path(`/test`) || Host(`api.example.com``) 

в этой публикации , вы можете найти больше информации о traffi c и перенаправлении

...