set을 사용하여 nginx에서 기본 변수 설정 있지만 기본값을 정의 할 수 있습니까? 예

nginx set에서 변수를 정의하는 데 사용할 수 있지만 기본값을 정의 할 수 있습니까?

예 :

set $foo bar if $foo is not defined


답변

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

또는

if ($foo = '') {
    set $foo bar;
}

답변

이것은 또한 작동합니다 :

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)