Микрогейтвей Ocelot, размещенный в IIS

#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 документации