NGINX:将请求副本发送到另一个上游

Cun*_*ing 5 nginx reverse-proxy

我们的团队开发了一个分析应用程序,可以记录和分析所有传入(未丢弃)的请求。在这种情况下,我必须将所有请求的副本发送到我的反向代理解决方案中的另一个上游。

单独使用NGINX可以吗?或者有没有其他对当前反向代理结构影响最小的解决方案?

最好在 NGINX 中执行此操作,以便 NGINX 的请求处理已经完成,并且请求将与发送到目标上游的请求相同。

PS:分析应用没有返回任何响应

小智 5

在 nginx 文档中进行一些搜索后,我在nginx.org中找到了一个目录镜像。想一想,这就是你所需要的。

我们使用 kubernetes 和 nginx 作为入口,所以我们的配置是

      location /api/what-i-want-to-mirror {
          set $proxy_upstream_name "gateway-api-service-svc-80";
          proxy_pass http://upstream_balancer;
          mirror /mirror;

          proxy_set_header Host $host;
          proxy_set_header X-Real-IP $remote_addr;
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      }

      location = /mirror {
          set $proxy_upstream_name "integration-gateway-api-service-svc-80";
          proxy_pass http://upstream_balancer;
          internal;
          proxy_set_header Host $host;
          proxy_set_header X-Real-IP $remote_addr;
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

          proxy_set_header X-Original-URI $request_uri;
      }
Run Code Online (Sandbox Code Playgroud)

我们已经尽快做到了这一点,但它的效果就像一个魅力。