Как использовать ngx.location.capture() с proxy_pass в плагине kong?

В настоящее время я пишу плагин Kong. Когда я получаю запрос с токеном, я хочу запросить внешнюю службу для проверки токена. Я читал, что вы можете использовать location_capture и proxy_pass для выполнения внешних HTTP-запросов.

Я точно не знаю, как это сделать. я поставил

location = /reqbin { proxy_pass https://requestb.in/yn3pykyn; }

в файле nginx_kong.lua. Это туда, куда он должен идти?

В моем коде плагина у меня есть:

res = ngx.location.capture("/reqbin", {method=ngx.HTTP_POST, args=args})

Но когда я использую curl для запроса Kong, запрос идет прямо к upstream_url, и я могу сказать, что мой requestbin не попал. Что я делаю не так?

edit: Кроме того, текущий res имеет:

статус: 500

тело: нет

заголовки: Content-Type: text/plain, Server: kong/0.10.3

усечено: правда


person fourohm    schedule 02.08.2017    source источник


Ответы (1)


Есть хорошая библиотека, которая поможет вам выполнять эти запросы: https://github.com/pintsized/lua-resty-http Я использовал его для тех же целей, и он отлично работает.

person Andrés Soto    schedule 01.05.2018