Я пытаюсь динамически установить назначение proxy_pass, где переменной будет cname исходного запроса.nginx variables (cname) в proxy_pass
то, что у меня есть прямо сейчас:
server {
listen 8888;
server_name (.*).domain.com;
location/{
proxy_pass http://$1.otherdomain.com;
proxy_set_header Host $1.otherdomain.com;
, но, к сожалению, это заканчивается в 502 плохой шлюз. ничего не работает при использовании переменной в proxy_pass
и proxy_set_header
.
Я также пытался использовать (?<cname>.+)
или (?P<cname>.+)
в имени сервера и $cname
как переменную.
что не так, и почему это заканчивается на 502?
Примечание: если вы произвольно указываете доменное имя в директиве proxy_pass, все в порядке. Нет необходимости в преобразователе dns. В этом случае, я думаю, nginx находит эти IP-адреса этих имен, когда он анализирует файл конфигурации. –
Do ** NOT ** использовать общедоступный DNS-сервер, такой как '8.8.8.8'. [Чтобы предотвратить спуфинг DNS, рекомендуется настроить DNS-серверы в правильно защищенной доверенной локальной сети.] (Http://nginx.org/en/docs/http/ngx_http_core_module.html#resolver) – Tim