Ustaw domyślną zmienną w nginx za pomocą set

10

W nginx mogę użyć setdo zdefiniowania zmiennej, ale czy można zdefiniować wartość domyślną?

na przykład

set $foo bar if $foo is not defined
Howard
źródło
2
Co próbujesz osiągnąć
Michael Hampton

Odpowiedzi:

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

lub

if ($foo = '') {
    set $foo bar;
}
VBart
źródło
1
Za pomocą metody if otrzymałem using uninitialized "foo" variableostrzeżenie w moim dzienniku. Czy mogę tego uniknąć?
hiroshi
0

Działa to również:

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

map $foo $foo {}rozwiązuje błąd nginx: [emerg] unknown "foo" variable - po prostu nie wygląda dobrze - ale działa.

Uwaga: mapmusi być w bloku http {}( nginx/conf.d)

hrvoj3e
źródło