Kong为注册APIS返回404

时间:2016-06-29 13:19:35

标签: api gateway kong

我已成功安装Kong并通过Kong提供的管理服务映射API,如下所示: 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" }

我可以在拨打http://kong:8001/apis时获得此API。

现在我尝试使用kong访问我的API端点,如: http://kong:8000/services_test/test.json 它返回404“未找到请求的资源”。

我做错了什么? 我无法访问kong的日志。谁能告诉我kong存储日志文件的位置? 谢谢你的帮助。 PS:所有网址都是虚拟的。

3 个答案:

答案 0 :(得分:3)

终于得到了答案。我在这里做错了是设置" strip_request_path"财产真实。通过在API上启用strip_request_path属性,将在不将request_path属性包含在上游请求中的情况下代理请求。 在我的情况下,实际的API终点是:http://test.suraj.com:9110/services_test/test.json 而Kong正在将请求重定向到: http://test.suraj.com:9110/test.json 因为" strip_request_path"财产是真的。 这是关于How does Kong route a request to an API

的文档

来自google group

的更多信息

答案 1 :(得分:2)

使用request_pathrequest_host。不要同时使用它们。

答案 2 :(得分:1)

strip_request_path的工作原理如下: 假设strip_request_path =trueupstream_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。那么您的请求网址应如下所示:

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

然后kong将在下面的终点转发此请求:

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