如何在kong插件中使用带有proxy_pass的ngx.location.capture()?

时间:2017-08-02 15:54:59

标签: nginx lua openid-connect 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没有被命中。我做错了什么?

编辑:此外,当前资源有:

状态:500

body:nil

headers:Content-Type:text / plain,Server:kong / 0.10.3

truncated:true

1 个答案:

答案 0 :(得分:0)

有一个很好的图书馆可以帮助你完成这些请求:https://github.com/pintsized/lua-resty-http我一直在使用它来达到同样的目的而且效果很好。