【问题标题】:How to forward the requested URL from Kong API gateway to back-end API micro-services [closed]如何将请求的 URL 从 Kong API 网关转发到后端 API 微服务 [关闭]
【发布时间】:2017-10-10 21:24:08
【问题描述】:

我正在寻找一种将客户端请求的 URL 转发到 Kong API 网关到我的 API 微服务的方法。例如,如果我的 kongw.com 指向我的 Kong 网关,我想将整个域转发到我的微服务。

另一个例子:

客户端正在请求mysubdomain.kongw.com/orders/list。我希望我的微服务知道请求的整个 URL。

我发现我可以配置 Nginx 以使用其 server_name 通配符获取 URL。但通配符什么也没返回。我想通过在请求中添加X-Wholerequest 参数来将结果发送到我的微服务。但它没有用。

配置 Nginx 的正确方法是什么? 有没有其他方法可以处理Kong的这种情况?

【问题讨论】:

  • 所以,你有一个在 kongw.com 上运行的 Kong 集群,现在你想将 mysubdomain.kongw.com/orders-service 转换为 kongw.com/orders-service。您可以将 CNAME mysubdomain.kongw.com 指向 kongw.com,然后使用 kong 路由规则将所有带有主机的请求路由到服务 kongw.com/orders-service。 Kong 将评估任何传入的 HTTP 请求,前提是您已经为 API 的 public_dns 实现了通配符子域。另一种方式,使用 url-rewrite,这个插件简单地丢弃 kong 路由中设置的 url,并使用其配置中设置的 url 代理到上游。

标签: nginx kong


【解决方案1】:

Kong Enterprise Edition 请求转换器插件https://getkong.org/plugins/ee-request-transformer/ 支持您描述的功能,其中 Kong 捕获请求的完整 URL,然后将该 URL 作为请求标头添加为请求标头,即包含在 Mashape Enterprise 的付费订阅中。

使用自定义 NGINX 配置也可以做到这一点,但我不熟悉如何做到这一点。

【讨论】:

【解决方案2】:

所以,您有一个在 kongw.com 上运行的 Kong 集群,现在您想将 mysubdomain.kongw.com/orders-service 转换为 kongw.com/orders-service。

您可以将 CNAME mysubdomain.kongw.com 指向 kongw.com,然后使用 kong 路由规则将所有带有主机的请求路由到服务 kongw.com/orders-service。

Kong 将评估任何传入的 HTTP 请求,前提是您已经为 API 的 public_dns 实现了通配符子域。

另一种方式,使用 url-rewrite,这个插件只是简单地丢弃 kong 路由中设置的 url,并使用其配置中设置的 url 代理到上游。

【讨论】:

    猜你喜欢
    • 2015-12-27
    • 2019-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-25
    • 2020-07-24
    相关资源
    最近更新 更多