Служить данные из разных мест в зависимости от параметра запроса
Я хотел бы обслуживать данные на одном и том же хосте из разных каталогов в зависимости от параметра запроса, используя 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;