#asp.net-core #ocelot
#asp.net-ядро #ocelot
Вопрос:
Привет, я пытался реализовать ocelot для наших экспериментальных тестов на dev. Вот конечная точка api, которую я хочу получить через ocelot. использование порта 443 для обоих проектов. но все время получаю 502 плохих шлюза.
конечная точка => https://localhost/document/api/v1/Documents/XYZ
"ReRoutes": [
{
"DownstreamPathTemplate": "/document/api/v1/Documents/{name}",
"DownstreamScheme": "https",
"DownstreamHostAndPorts": [
{
"Host": "localhost",
"Port": 443
}
],
"UpstreamPathTemplate": "/apigateway/{name}/document",
"UpstreamHttpMethod": [ "Post" ],
"Priority": 0
}
],
«GlobalConfiguration»: {
«baseUrl»: «https://localhost:443 »
}
}
Имя псевдонима Microgateway => «apigateway» Имя псевдонима Api => «документ»
Кроме того, я смог выполнить отладку в visiual studio, но всякий раз, когда я размещаю оба приложения в своем локальном IIS, получаю 502 bad gateway
Комментарии:
1. Скорее всего, это какая-то проблема с конфигурацией. Вы уверены, что он размещен на https-порту 443?
2. Привет, я размещался на 443 на iss, это точно
3. Работает ли 443, когда вы пытаетесь подключиться к нему напрямую?
4. Да, он попадает в API. Я думаю, это также может быть связано с способом публикации API.
5. Привет @OguzBerkayYerdelen, я также сталкиваюсь с аналогичной проблемой при размещении в IIS. Теперь ваша проблема решена?
Ответ №1:
Похоже, что используемая вами конфигурация перенаправляет запрос на сам шлюз, что приводит к образованию круга.
т. е. вышестоящий вызов базового URL-адреса «localhost: 443» перенаправляется на нижестоящий «localhost: 443» — то же самое.
Кроме того, более поздние версии Ocelot, похоже, ищут Routes
в конфигурации, а не в ReRoutes
документации