我正在嘗試動態設置proxy_pass目標,其中變量將是原始請求的cname。proxy_pass中的nginx變量(cname)
我有什麼現在的問題是:
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地址。 – 2013-03-22 02:28:16
Do not NOT **使用可公開訪問的DNS服務器,如「8.8.8.8」。 [爲防止DNS欺騙,建議在正確安全的可信任本地網絡中配置DNS服務器。](http://nginx.org/en/docs/http/ngx_http_core_module.html#resolver) – Tim 2016-10-07 20:12:08