Скрытие IdentityServer4 за шлюзом Ocelot
Я пытаюсь решить большую проблему, разделив ее на более мелкие части. Первая проблема в том, что я не знаю, как правильно спрятаться. для этой статьи я создал простое демонстрационное приложение, которое развертывается в Docker (доступно на github). Он имеет два микросервиса внутри: OcelotGateway (проект OcelotIdentity), развернутый на localhost:7060 и микросервис IdentityServer (проект Identity), развертываемый на localhost:7050. Вот мой файл конфигурации ocelot:
{
"ReRoutes": [
{
"DownstreamPathTemplate": "/{route}",
"UpstreamPathTemplate": "/identity/{route}",
"UpstreamHttpMethod": [ "Get", "Options", "Post" ],
"DownstreamScheme": "http",
"ServiceName": "identity"
}
],
"GlobalConfiguration": {
"RequestIdKey": "OcRequestId",
"AdministrationPath": "/administration"
}
}
Поэтому я ожидаю увидеть страницу быстрого запуска IdentityServer по адресу localhost:7060/identity, но вместо этого я получу 404. Эта страница работает нормально, когда я достигаю ее непосредственно по URL-адресу сервера идентификации (localhost:7050).
0 ответов
Вы, наверное, уже догадались, но только для будущих поколений; Я полагаю, проблема в том, что вы все, что-то вроде/identity/something
быть переданным /something
.
Чтобы отобразить страницу быстрого старта, вы должны определить другой перетрасс, который только улавливает /identity
и вперед /
. Тогда нетsomething
требуется, и изменение маршрута должно работать нормально.
Также схема должна быть лучше https
.