鍍金池/ 問答/Linux/ nginx proxy_pass命令 地址為域名時, nginx啟動報 hos

nginx proxy_pass命令 地址為域名時, nginx啟動報 host not found in upstream

我想訪問本地網站的指定uri時,實際訪問的是另一網站,于是使用了nginx作為代理

nginx相關配置如下
server {

listen 80;
server_name www.example.com;
.....

location /foo/ {
    proxy_store off;
    proxy_redirect off;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header Referer 'no-referrer-when-downgrade';
    proxy_set_header User-Agent 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebkit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.62 Safari/537.36';
    proxy_pass https://api.example.com/foo/;
}

}

nginx 啟動時報錯 host not found in upstream 'api.example.com'

回答
編輯回答
尐飯團

你的upstream配置里面沒有'api.example.com',可以貼一下你的upstream配置嗎

類似這樣

http {
    upstream myapp1 {
        server srv1.example.com;
        server srv2.example.com;
        server srv3.example.com;
    }

    server {
        listen 80;

        location / {
            proxy_pass http://myapp1;
        }
    }
}
2017年7月16日 11:54
編輯回答
練命

已解決

location /foo/ {
    resolver 8.8.8.8; 
    set $backend "api.example.com";
    proxy_pass https://$backend;
}

2017年4月30日 15:47