Establecer una variable predeterminada en nginx con set

10

En nginx puedo usar setpara definir una variable, pero ¿es posible definir un valor predeterminado?

p.ej

set $foo bar if $foo is not defined
Howard
fuente
2
¿Qué estás tratando de lograr?
Michael Hampton

Respuestas:

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

o

if ($foo = '') {
    set $foo bar;
}
VBart
fuente
1
Usando el método if recibí una using uninitialized "foo" variableadvertencia en mi registro. ¿Puedo evitarlo?
hiroshi
0

Esto también funciona:

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

map $foo $foo {}resuelve el error nginx: [emerg] unknown "foo" variable , simplemente no se ve bien, pero funciona.

Nota: mapdebe estar en block http {}( nginx/conf.d)

hrvoj3e
fuente