Назад | Перейти на главную страницу

NGINX: отправить копию запросов другому апстриму

Наша команда разработала аналитическое приложение, которое записывает и анализирует все входящие (не отброшенные) запросы. В этом случае я должен отправлять копии всех запросов другому восходящему потоку в моем решении обратного прокси.

Возможно ли это только с NGINX? Или есть какое-то другое решение с минимальным влиянием на текущую структуру обратного прокси?

Предпочтительно делать это в NGINX, чтобы процессы по запросам NGINX уже выполнялись, а запрос был таким же, как он был отправлен в пункт назначения в восходящем направлении.

PS: аналитическое приложение не возвращает никакого ответа

После некоторого поиска в документации nginx я нашел зеркало каталога в nginx.org. Думаю, это то, что тебе нужно.

Мы используем кубернеты с 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;
      }

Мы сделали это как можно скорее, но это работает как шарм.