Конг возвращает 404 для зарегистрированного APIS

Я успешно установил Kong и сопоставил API с помощью служб администрирования, предоставляемых Kong, как показано ниже: http://kong:8001/apis payload: { "upstream_url": "http://test.suraj.com:9110/" "strip_request_path": true "request_path": "/services_test" "preserve_host": false "name": "services_test" "request_host": "test.suraj.com" }

Я могу получить этот API при выполнении вызова http://kong:8001/apis.

теперь я пытаюсь получить доступ к своим конечным точкам API, используя kong, например: http://kong:8000/services_test/test.json возвращает 404 «запрошенный ресурс не найден».

что я делаю не так? Я не могу получить доступ к журналу Kong. может ли кто-нибудь сказать мне, где Kong хранит файлы журналов? Спасибо за любую помощь. PS: все URL-адреса являются фиктивными.


person Suraj    schedule 29.06.2016    source источник


Ответы (3)


Наконец, я получил свой ответ.

Что я сделал неправильно, так это установить для свойства strip_request_path значение true.
При включении свойства strip_request_path в API запросы будут передаваться через прокси без включения свойства request_path в восходящий запрос.

В моем случае фактическая конечная точка API была:

http://test.suraj.com:9110/services_test/test.json

и Конг перенаправлял запрос на:

http://test.suraj.com:9110/test.json

потому что свойство strip_request_path было истинным.

вот что говорится в документации о Как Kong направляет запрос к API

дополнительная информация из группы Google

person Suraj    schedule 07.07.2016
comment
Это было действительно полезно - person Apurva jain; 13.06.2020

используйте request_path или request_host. не используйте их оба.

person Community    schedule 13.09.2016

Ниже показано, как работает strip_request_path: предположим, что strip_request_path =true и upstream_url"= "http://test.suraj.com:9110/" и request_path= "/services_test"

потом :

  • test.suraj.com/services_test/test.json будет сопоставлен с http://test.suraj.com:9110/test.json

  • test.suraj.com/whatever/test.json вернет 404.

Если request_path является частью вашей фактической конечной точки, вы должны установить для свойства strip_request_path значение false. в противном случае измените strip_request_path на что-то другое, например, services123. тогда URL-адрес вашего запроса должен выглядеть следующим образом:

test.suraj.com/services123/services_test/test.json

то kong перенаправит этот запрос на следующую конечную точку:

http://test.suraj.com:9110/services_test/test.json
person Community    schedule 26.07.2016