gpt4 book ai didi

nginx - 是否可以在 NGINX 中合并多个响应并发送一个响应

转载 作者:行者123 更新时间:2023-12-03 21:26:11 29 4
gpt4 key购买 nike

我在一台虚拟机上运行了 Nginx/openresty 和其他一些服务。基本上 VM 接受 Openresty 上的请求,然后 openresty 将请求转发给适当的服务。例如下面的请求分别转发到 ServiceA、ServiceB 和 ServiceC。它工作正常。

  • http://server:80/services/refA
  • http://server:80/services/refB
  • http://server:80/services/refC

  • 现在我需要公开一个新端点,该端点可以从所有服务 A、B 和 C 获取响应,然后返回一个合并的响应。

    我不能在我的位置使用多个 proxy_pass,有人可以建议我如何实现吗?例如

    http://server:80/services/refALL --> 返回来自 A、B 和 C 服务的合并响应。

    最佳答案

    你可以像下面那样做。基本上你捕获来自其他服务的响应,然后将它们组合起来

    location /services/refALL {
    content_by_lua_block {
    local respA = ngx.location.capture("/services/refA")
    local respB = ngx.location.capture("/services/refB")
    local respC = ngx.location.capture("/services/refC")

    ngx.say(respA.body .. respB.body .. respC.body)
    }
    }

    关于nginx - 是否可以在 NGINX 中合并多个响应并发送一个响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46267497/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com