Legen Sie mit set eine Standardvariable in nginx fest

10

In Nginx kann ich seteine Variable definieren, aber ist es möglich, einen Standard zu definieren?

z.B

set $foo bar if $foo is not defined
Howard
quelle
2
Was versuchst du zu erreichen?
Michael Hampton

Antworten:

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

oder

if ($foo = '') {
    set $foo bar;
}
VBart
quelle
Mit der if-Methode wurde using uninitialized "foo" variablein meinem Protokoll eine Warnung angezeigt. Kann ich das vermeiden?
Hiroshi
0

Dies funktioniert auch:

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

map $foo $foo {}löst Fehler nginx: [emerg] unknown "foo" variable - sieht einfach nicht richtig aus - aber es funktioniert.

Hinweis: mapmuss in block http {}( nginx/conf.d) sein

hrvoj3e
quelle