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

10

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

например

set $foo bar if $foo is not defined
Говард
источник
2
Что вы пытаетесь достичь?
Майкл Хэмптон

Ответы:

16
map $foo $new_foo {
    default  $foo;
    ''       bar;
}

или

if ($foo = '') {
    set $foo bar;
}
VBart
источник
1
Используя метод if, я получил using uninitialized "foo" variableпредупреждение в своем журнале. Могу ли я избежать этого?
Хироши
0

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

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)

hrvoj3e
источник