Есть ли способ заставить nginx обрабатывать переменную как имя восходящего потока, а не как URL?

Есть ли способ заставить nginx обрабатывать переменную как имя восходящего потока, а не как URL?

У меня есть несколько восходящих потоков, из которых я выбираю на основе набора заголовков, но я нахожу, что после добавленияhttps://github.com/GUI/nginx-upstream-dynamic-serversчто моя $destinationпеременная интерпретируется как URL, а не как upstream. Вот фрагмент:

http {
    upstream LegacyService {
        server my.server.location.com:443 max_fails=0 resolve;
    }


    upstream NewService {
        server myNew.server.location.com:443 weight=100 max_fails=0 resolve;

    }

    ... 
    map $http_some_header $destination {
        default LegacyService;
        "~marker" NewService;
    }
    
    server {
        listen localhost:8080;
        
        # lots of the usual setup
        
        location / {
            proxy_pass https://$destination;
        }
    }
}

Эта конфигурация вызывает у меня кучу ошибок, поскольку теперь мои пункты назначения интерпретируются как URL-адреса, а не как имена восходящих потоков:

2021/08/09 11:05:56 [error] 15326#0: *5761 no live upstreams while connecting to upstream, client: 10.1.1.5, RequestID: 6ef3b58fc95e07b083e6186df62ba15d, server: my.server.com, request: "POST / HTTP/1.1", upstream: "https://LegacyService/", host: "my.server.com"

Я хотел бы понять, почему происходит это изменение, и посмотреть, можно ли что-то сделать. Я неправильно понял сообщение об ошибке?

Связанный контент