Я пытаюсь настроить весенний облачный шлюз для перенаправления к стандартному пользовательскому интерфейсу 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.