Kong {«сообщение»: «ни один маршрут не соответствует этим значениям»}

#kong

#kong

Вопрос:

Я пытался https://docs.konghq.com/getting-started-guide/2.1.x/expose-services / также у меня есть локальный сервер: kong /2.2.1 Я могу зарегистрировать службу и маршрутизатор, но когда я вызываю kong, чтобы перенаправить его, он выдает ошибку ниже.

служба зарегистрирована:

 {
    "host": "localhost",
    "id": "2546864e-6ac0-41e5-b39f-b05310ac53f8",
    "protocol": "http",
    "read_timeout": 60000,
    "tls_verify_depth": null,
    "port": 16001,
    "updated_at": 1607946666,
    "ca_certificates": null,
    "created_at": 1607946666,
    "connect_timeout": 60000,
    "write_timeout": 60000,
    "name": "newkong",
    "retries": 5,
    "path": null,
    "tls_verify": null,
    "tags": null,
    "client_certificate": null
}
 

маршрутизатор зарегистрирован :

 {
    "id": "726eec9e-b179-4731-937f-e85a10101987",
    "tags": null,
    "paths": [
        "/customer"
    ],
    "destinations": null,
    "headers": null,
    "protocols": [
        "http",
        "https"
    ],
    "strip_path": true,
    "created_at": 1607946800,
    "request_buffering": true,
    "hosts": null,
    "name": "newkong-routing",
    "updated_at": 1608446942,
    "snis": null,
    "preserve_host": false,
    "regex_priority": 0,
    "methods": null,
    "sources": null,
    "response_buffering": true,
    "https_redirect_status_code": 426,
    "path_handling": "v0",
    "service": {
        "id": "2546864e-6ac0-41e5-b39f-b05310ac53f8"
    }
}
 

вызов kong на: http://localhost:8000/customer/1

чтобы он мог перенаправлять на http://localhost:16001/customer/1

{«сообщение»: «ни один маршрут не соответствует этим значениям»}

Ответ №1:

с первого взгляда это должно сработать. за исключением того, что восходящий путь будет удален, поскольку маршрут имеет "strip_path": true .

 {
  "paths": [
    "/customer"
  ],
  "methods": null,
  "hosts": null,
  "snis": null,
  "headers": null,
  "protocols": [
    "http",
    "https"
  ],
  "strip_path": true,
  "created_at": 1607946800,
  "request_buffering": true,
  "name": "newkong-routing",
  "updated_at": 1608446942,
  "preserve_host": false,
  "regex_priority": 0,
  "sources": null,
  "response_buffering": true,
  "https_redirect_status_code": 426,
  "path_handling": "v0",
  "id": "726eec9e-b179-4731-937f-e85a10101987",
  "destinations": null,
  "tags": null,
  "service": {
    "id": "2546864e-6ac0-41e5-b39f-b05310ac53f8"
  }
}
 

Поскольку единственными заданными свойствами маршрутизации являются «протоколы» и «пути», он должен работать. Вы уверены, что это правильно?

При выполнении запроса:

 http://localhost:8000/customer/1
 

Он должен прокси-сервер к:

 http://localhost:16001/1
 

потому что элемент path, который сопоставляется ( /customer ), удаляется.