Реализация перезаписи Spring Boot + Cloud URL

Мне нужно реализовать приложение Spring Boot + Cloud Gateway, чтобы оно служило прокси-сервером для нескольких правил, включающих несколько сайтов, например:

usecase 1: http://gateway/admin/** <-> http://site1/** (an admin site)  
usecase 2: http://gateway/rest/** <-> http://site1/rest/** (a REST API)  
usecase 3: http://gateway/<everything else>/** -> http://site2/**

До сих пор я экспериментировал с netflix-zuul, как описано в учебниках spring.io, например:

zuul.routes.admin.path=/admin/**
zuul.routes.admin.url=http://site1
zuul.routes.rest.path=/rest/**
zuul.routes.rest.url=http://site1/rest
ribbon.eureka.enabled=false

Работает простое сопоставление 1-к-1, например, http://шлюз/остальные/foo <-> http://site1/rest/foo. Этого может быть достаточно только для варианта использования № 2.

В чем я не уверен, так это в том, как проксировать сайт администратора на том же хосте, используя префикс («admin»), как в случае использования № 1 (т. Е. Внутренние ссылки также должны быть переведены)?

Кроме того, позже мне нужно поймать все остальное в сценарии использования № 3 и правильно перенаправить их на второй сайт «site2».

Является ли Zuul подходящим инструментом для этого? Пожалуйста, покажите мне правильное направление. ТИА!

Взгляните на это: stackoverflow.com/questions/47092048/…

Simon Martinelli 05.02.2019 19:11

Spring Cloud Gateway имеет полный доступ к регулярным выражениям Java для преобразования URL-адреса.

spencergibb 05.02.2019 19:45

Как вы обычно реализуете прокси для всего сайта? Например, вы маршрутизируете на основе реферера? Кроме того, как вы обычно обрабатываете перенаправления (302), чтобы местоположение оставалось «шлюзом», а не «сайтом». Буду очень признателен за некоторые примеры кода/учебников, чтобы мне было с чего начать.

SuwekongHilaw 06.02.2019 21:26
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Версия Java на основе версии загрузки
Версия Java на основе версии загрузки
Если вы зайдете на официальный сайт Spring Boot , там представлен start.spring.io , который упрощает создание проектов Spring Boot, как показано ниже.
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
1
3
235
0

Другие вопросы по теме