Служить данные из разных мест в зависимости от параметра запроса
Я хотел бы обслуживать данные на одном и том же хосте из разных каталогов в зависимости от параметра запроса, используя Nginx.
Например https://foo.bar/index.html
должно быть подано с /var/www/foo
а также https://foo.bar/index.html?baz=quux
от /var/www/bar
,
Я пытался изменить сервер root
условно, но оказывается, что это не поддерживается.
root /var/www/foo;
if ($args ~ baz=quux) {
# this is not gonna work but that is what is needed
# root /var/www/bar;
}
1 ответ
Я не уверен, что это самый элегантный способ решения проблемы, но использование переменной в root
Директива работает как положено.
set $env 'foo';
if ($arg_baz=quux) {
set $env 'bar';
}
root /var/www/$env;