Welcome! Log In Create A New Profile

Advanced

Тринарный оператор

Алферов Василий
March 21, 2011 05:12AM
Добрый день!

Хочу реализовать следующую схему для nginx:

если в запросе задан параметр $upstream = a.domain.tld, то направлять запрос
на этот апстрим
если параметра нет, то направлять на дефолтный.

Не посоветуете ли, как можно реализовать аналог тринарного оператора:

set $host = $arg_upstream ? $arg_upstream : $default_upstream;
proxy_pass $host



на ум приходит использование map:

map $upstream $host {
hostnames;
default $default_upstream;
a.domain.tld ip.ad.dr.es1;
b.domain.tld ip.ad.dr.es1;
c.domain.tld ip.ad.dr.es1;
}
...
location / {
set $upstream $arg_upstream;
proxy_pass $host;
}

Но тут возникает вопрос - известен ли $arg_upstream в тот момент, когда
происходит proxy_pass?
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

Тринарный оператор

Алферов Василий March 21, 2011 05:12AM

Re: Тринарный оператор

Igor Sysoev March 21, 2011 05:18AM

Re[2]: Тринарный оператор

Михаил Монашёв March 21, 2011 06:46AM

Re: Тринарный оператор

Igor Sysoev March 21, 2011 06:58AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 169
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready