Atur variabel default di nginx dengan set

10

Di nginx saya dapat menggunakan setuntuk mendefinisikan variabel, tetapi apakah mungkin untuk mendefinisikan default?

misalnya

set $foo bar if $foo is not defined
Howard
sumber
2
Apa yang ingin Anda capai?
Michael Hampton

Jawaban:

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

atau

if ($foo = '') {
    set $foo bar;
}
VBart
sumber
1
Menggunakan metode if saya mendapat using uninitialized "foo" variableperingatan di log saya. Bisakah saya menghindarinya?
hiroshi
0

Ini juga berfungsi:

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

map $foo $foo {}memecahkan kesalahan nginx: [emerg] unknown "foo" variable - tidak terlihat benar - tetapi berhasil.

Catatan: mapharus ada di blok http {}( nginx/conf.d)

hrvoj3e
sumber