使用nginx设置动态上游

时间:2016-04-19 06:39:40

标签: nginx load-balancing geo

假设我必须上游源

upstream first {
}

upstream second {
}

然后在server

map $geoip_country_code $is_china {
    default no;
    CN yes;
}

我想要实现的是$is_china,使用不同的上游

proxy_pass http://$preferred_host/;

我无法用nginx来解决这个问题。

2 个答案:

答案 0 :(得分:4)

map可能就足够了。你试过以下这个吗?

map $geoip_country_code $preferred_host {
    default first;
    CN      second;
}

答案 1 :(得分:1)

结果我可以在nginx中使用if

set $preferred_host http://first;
if ($is_china) {
    set $preferred_host http://second;
}

location / {
    proxy_pass $preferred_host/;
    ...
}