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 часов

Вернуться на верх