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

карта потока nginx с подстановочным знаком

Я действительно плохо разбираюсь в регулярном выражении. Я пытаюсь сделать это в nginx:

stream {

    map $ssl_preread_server_name $name {
        api.dom1.com dom1_backend;
        *.dom2.com dom2_backend;
    }

    upstream dom1_backend {
        server api.dom1.com:443;
    }

    upstream dom2_api_backend {
        server *.dom3.com:443;
    }

    server {
        listen 443;
        proxy_pass $name;
        ssl_preread on;
    }
}

Как заставить работать dom2? Мне просто нужно сопоставить домен с подстановочными знаками обратно в домен с подстановочными знаками.

Что угодно означает: * .dom2.com перейдет на * .dom3.com

Чтобы использовать имена хостов, вы должны указать специальный hostnames параметр для map. Это позволяет интерпретировать подстановочные знаки звездочки ожидаемым образом.

map $ssl_preread_server_name $name {
    hostnames;
    api.dom1.com dom1_backend;
    *.dom2.com dom2_backend;
}