Конг, 502 Bad Gateway с локальным сервисом - PullRequest
0 голосов
/ 04 марта 2019

Я столкнулся с проблемой с Kong, я создал свой сервис и мой маршрут точно так же, как 5-минутный краткий старт документации Kong, но я изменил только некоторые параметры, чтобы настроить сервис с моим собственным API, работающим на localhost: 3000.

Итак, есть мои настройки:

  • Конг работает на Docker (Docker работает на той же машине, что и мой сервис)
  • http://localhost:3000/users, что является моимсервис всегда возвращает JSON {"status": "OK"}

есть то, что я сделал для создания своего сервиса.

Я создал свой сервис с параметрами:

{
    "name": "users",
    "url": "http://localhost:3000",
    "host": "127.0.0.1"
}

затем я создал маршрут с телом:

{
    "hosts": [ "127.0.0.1"],
    "methods": ["GET"],
    "paths": ["/"],
    "name": "users"
}

, затем я попытался, если все работает с http://localhost:8080/users с заголовком: "Host: 127.0.0.1"

и я получил ответ:

502 Bad Gateway: неверный ответ был получен от вышестоящего сервера

Журналы докера (этот хостинг-конг):

2019/03/04 09:28:36 [error] 36 # 0: * 63824 connect () не удалось (111: Connотказался) при подключении к восходящему каналу, клиенту: 172.18.0.1, серверу: kong, запрос: «GET / users HTTP / 1.1», восходящий поток: «http://127.0.0.1:3000/users", host:« 127.0.0.1 »

Таким образом, мы можем видеть, что Конг пытается получить доступ к хорошей конечной точке '127.0.0.1:3000/', но не может получить к ней доступ.

Возможно, Конг пытается получить доступ к собственному контейнеру localhost, но я не 'не знаю, и я не знаю, как это исправить, может быть, вы можете мне помочь!

1 Ответ

0 голосов
/ 12 марта 2019

Вы действительно настроили Kong для доступа к своему собственному контейнеру.Чтобы получить доступ к службам, работающим на вашем фактическом компьютере (я предполагаю, что Windows или macOS здесь), вы можете вместо этого указать службу http://host.docker.internal:3000.Кроме того, я бы пропустил свойства host до тех пор, пока вы не подключитесь правильно, а затем снова добавил бы ограничения.

См. Также этот вопрос: Dockererized Kong на окнах, выдающих «Недопустимый ответ былполученный от вышестоящего сервера "

Конг, работающий в контейнере, похож на свою маленькую виртуальную машину (не бейте меня, я знаю, что это не совсем так, но с точки зрения сети этоработает), а localhost для Kong это просто контейнер.Хост контейнера, для Конга, является отдельным хостом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...