Назад | Перейти на главную страницу

Установите переменную по умолчанию в nginx с помощью set

В nginx я могу использовать set для определения переменной, но можно ли определить значение по умолчанию?

например

set $foo bar if $foo is not defined
map $foo $new_foo {
    default  $foo;
    ''       bar;
}

или

if ($foo = '') {
    set $foo bar;
}

Это тоже работает:

map $foo $foo {
    default '';
}
map $foo $bar {
    default '';
    'bar' 'bar';
    'foo' $foo;   <----- nginx: [emerg] unknown "foo" variable
}

map $foo $foo {} решает ошибку nginx: [emerg] unknown "foo" variable - просто не выглядит правильным - но это работает.

Примечание: map должен быть в блоке http {} (nginx/conf.d)