Зеркальное отображение NGINX с перезаписью URL - PullRequest
0 голосов
/ 09 апреля 2019

Я пытаюсь использовать зеркальную директиву для регрессионного тестирования в моем приложении, однако у меня возникают трудности при попытке использовать стандартные функции перезаписи NGINX.

Позвольте мне начать с предоставления кода, который у меня уже есть для перезаписи URL:

location ^/account/level/(?<level>[0-9]+) {
    set $upstream https://api_backend;
    set $internal_route "/api/level/:level";
    proxy_pass $upstream$internal_route;
}

Это перезапишет https://example.com/account/level/5 в https://api_backend/api/level/5 - Это работает правильно.

Теперь давайте посмотрим на код для зеркалирования трафика:

location ^/account/level/(?<level>[0-9]+) {
    set $internal_route "/api/level/:level";
    set $upstream https://api_backend;
    proxy_pass $upstream$internal_route;

    mirror /mirror/level-endpoint;
    mirror_request_body on;
}

location = /mirror/level-endpoint {
    internal;
    set $upstream https://mirror_backend;
    set $internal_route "/api/level/:level";
    proxy_pass $upstream;
}

Это правильно отражает трафик в mirror_backend.Однако я не могу найти способ отправки трафика на $internal_route.(даже когда я добавляю $internal_route к директиве proxy_pass.

Я смог использовать $request_uri, однако это дает мне /account/level/5 (из примера выше).

Итак, возможно ли это, если да, может кто-нибудь объяснить, как?

...