Spring Cloud Gateway: как настроить маршрут к пользовательскому интерфейсу Consul? - PullRequest
1 голос
/ 02 февраля 2020

Я пытаюсь настроить весенний облачный шлюз для перенаправления к стандартному пользовательскому интерфейсу HashiCorp Consul в «/ consul / ui» или просто «/ консул». Однако я не понимаю, как это сделать правильно. Консул работает в стандартной конфигурации. У меня есть внешний 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, поскольку, согласно журналам, шлюз не совпадает с / консулом, но / консулом / **, а затем решает для маршрутизации до 10.2.0.2:8300, которая является конечной точкой Consuls rp c.

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

- 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 фактически работает в командной строке. Однако в браузере я вижу только консул go, но вся страница не загружается.

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

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

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

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

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

1 Ответ

0 голосов
/ 09 февраля 2020

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

...