Spring Cloud Gateway: как настроить маршрут к Consul UI?

Я пытаюсь настроить весенний облачный шлюз для пересылки в стандартный пользовательский интерфейс HashiCorp Consul в разделе «/ consul / ui» или просто «/ consul». Однако я не понимаю, как это сделать правильно. Консул работает в стандартной комплектации. У меня есть внешний IP-адрес и локальный сетевой интерфейс на 10.2.0.2. Я пытался:

routes:
    - id: consul
      uri: "http://127.0.0.1:8500"
      predicates:
        - Path=/consul/

curl -L 127.0.0.1/consul/ui, однако, дает мне 500, поскольку, согласно журналам, шлюз не соответствует / consul, но / consul / **, а затем решает перенаправить на 10.2.0.2:8300, который является Consuls rpc конечная точка.

Еще одна попытка:

- id: consul
      uri: "http://127.0.0.1:8500"
      predicates:
      - Path=/consul/**
      filters:
      - StripPrefix=1

... сделал то же самое, что и другой. Еще один многообещающий подход:

- id: consul
      uri: "http://127.0.0.1:8500"
      predicates:
      - Path=/consul/**
      filters:
      - RewritePath=/consul/(?<segment>.*), /ui/$\{segment}

Использование curl -L действительно работает в командной строке. Однако в браузере я вижу только логотип консула, а вся страница не загружается.

Я, конечно, пробовал и другие комбинации, ни одна из них не сработала.

Примечание. Конечная точка consul / ui передает статус 302, а затем перенаправляет на фактическую страницу.

Примечание: я использую SSL в шлюзе.

Примечание: ssh -N -f -L 8500:localhost:8500 <user>@<host> позволяет мне открывать ожидаемый пользовательский интерфейс локально под localhost: 8500.

ОБНОВЛЕНИЕ: Очевидно, /consul/** был плохим выбором, поскольку сам консул уже зарегистрирован по этому маршруту, поэтому у меня возник конфликт. Это, по крайней мере, проясняет, почему облачный шлюз пробовал маршрутизацию на порт 8300.


person PeMa    schedule 01.02.2020    source источник


Ответы (1)


К сожалению, в настоящее время нет реального ответа на этот вопрос, но есть некоторые хитрые обходные пути. Тем не менее, люди работают над решением, позволяющим использовать прокси-сервер для прохода консула. См., Например, https://github.com/hashicorp/consul/issues/1382

person PeMa    schedule 08.02.2020