Kong 502 Bad Gateway
У меня есть две виртуальные машины. На одной запущен сервер Apache с Django API, а на другой - Kong. Обе ВМ находятся в одной сети и могут пинговать друг друга, и я могу получить доступ к сайту Django через браузер с моей ВМ Kong.
Я настроил маршрут Kong так, чтобы он указывал на локальный IP-адрес в сети (192.168.x.x), а не на localhost. На виртуальной машине Kong я могу выполнять запросы curl непосредственно к API, и я могу получить доступ к сайту через браузер, и тестовый маршрут к httpbin также работает нормально. Но я все еще продолжаю сталкиваться с этой ошибкой, когда пытаюсь получить доступ к API через мой сервис.
Я запускаю Kong как есть, без докеров
Я попытался получить журналы и не получил никакой информации, кроме сообщения о плохом шлюзе, я трижды проверил и убедился, что маршруты указывают на правильный локальный IP-адрес и маршрут, а не на localhost, все еще ничего
У меня также настроен брандмауэр веб-приложений (Modsecurity), но отключение брандмауэра не устраняет проблему, и не появляется никаких соответствующих журналов ошибок, которые могут свидетельствовать о том, что брандмауэр блокирует мои запросы
Мой маршрут находится по адресу 192.168.226.128/api/mymodels, а мои службы настроены следующим образом
{
"data": [
{
"updated_at": 1715195774,
"path": "/api/mymodels/",
"name": "main",
"retries": 5,
"ca_certificates": null,
"port": 80,
"client_certificate": null,
"protocol": "http",
"enabled": true,
"connect_timeout": 60000,
"created_at": 1715180691,
"read_timeout": 60000,
"tls_verify": null,
"tags": null,
"tls_verify_depth": null,
"write_timeout": 60000,
"host": "192.168.228.128",
"id": "0052c1db-e28d-47ac-9ad4-5d41c510f066"
},
],
"next": null
}
{
"updated_at": 1715181353,
"snis": null,
"name": null,
"tags": [],
"preserve_host": false,
"destinations": null,
"methods": null,
"strip_path": true,
"hosts": null,
"created_at": 1715180717,
"request_buffering": true,
"response_buffering": true,
"sources": null,
"https_redirect_status_code": 426,
"regex_priority": 0,
"service": {
"id": "0052c1db-e28d-47ac-9ad4-5d41c510f066"
},
"protocols": [
"http",
"https"
],
"paths": [
"/main"
],
"headers": null,
"path_handling": "v0",
"id": "dd3d9f8e-4e88-44e5-afb1-3414e7c1b84d"
}
Любой совет будет оценен по достоинству, спасибо
исправил это, задав доменное имя в /etc/hosts, по какой-то причине это работает. не знаю почему
но зайдите в /etc/hosts, добавьте строку, сопоставляющую локальный IP-адрес вашего целевого upstream'а с произвольным доменным именем по вашему выбору, а затем измените службу Kong, чтобы она обслуживала это доменное имя вместо вашего локального IP.
192.168.226.128 mydomain.ccc
затем перейдите к вашему сервису и измените его следующим образом "host": "mydomain.ccc",
что за пустая трата 4 часов