В настоящее время я использую Nginx с Kubernetes. В моем файле конфигурации Nginx у меня есть следующий проход прокси:
location ~ /myPath/([\w-]+)/resources {
rewrite ^/myPath/([\w-]+)/resources/(.*)$ /myNewPath/$1/resources/$2 break;
proxy_pass http://$1;
}
В настоящее время Nginx жалуется, что не может разрешить $ 1 во время выполнения для выполнения proxy_pass (несмотря на то, что мы указали наш преобразователь SkyDNS, то есть преобразователь 10.250.0.5 действительный = 5 с).
Нам нужно, чтобы это выполнялось динамически, потому что при запуске Nginx значение $ 1 может быть неизвестно и должно быть разрешено по запросу.
Способен ли Nginx выполнять это динамическое разрешение DNS на лету?
Да, Nginx сможет сделать динамическое разрешение.
Однако ваше регулярное выражение может быть некорректным. Регулярное выражение ([\w-]+)
будет / не совпадать / соответствовать символу точки при использовании с механизмом PCRE. Вы можете проверить это на https://regex101.com/
Согласно Документы PCRE:
Символ «слова» - это подчеркивание или любой символ, являющийся буквой или цифрой.
Таким образом, ваше регулярное выражение будет работать для таких значений, как «short-host-name», но не «full-qualified.example.com».