Добрый день!<div><br></div><div>Хочу реализовать следующую схему для nginx:</div><div><br></div><div>если в запросе задан параметр $upstream = a.domain.tld, то направлять запрос на этот апстрим</div><div>если параметра нет, то направлять на дефолтный.</div>
<div><br></div><div>Не посоветуете ли, как можно реализовать аналог тринарного оператора:</div><div><br></div><div>set $host = $arg_upstream ? $arg_upstream : $default_upstream;</div><div>proxy_pass $host</div><div><br></div>
<div><br></div><div><br></div><div>на ум приходит использование map:</div><div><br></div><div>map $upstream $host {</div><div>  hostnames;</div><div>  default $default_upstream;</div><div>  a.domain.tld ip.ad.dr.es1;</div>
<div><meta http-equiv="content-type" content="text/html; charset=utf-8">  b.domain.tld ip.ad.dr.es1;</div><div><meta http-equiv="content-type" content="text/html; charset=utf-8">  c.domain.tld ip.ad.dr.es1;</div><div>}</div>
<div>...</div><div>location / {</div><div>  set $upstream $arg_upstream;</div><div>  proxy_pass $host;</div><div>}</div><div><br></div><div>Но тут возникает вопрос - известен ли $arg_upstream в тот момент, когда происходит proxy_pass?</div>