Đặt một biến mặc định trong nginx với set


10

Trong nginx tôi có thể sử dụng setđể xác định một biến, nhưng có thể xác định một mặc định không?

ví dụ

set $foo bar if $foo is not defined

2
Bạn đang cố gắng để thực hiện?
Michael Hampton

Câu trả lời:


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

hoặc là

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

1
Sử dụng phương thức if tôi nhận được using uninitialized "foo" variablecảnh báo trong nhật ký của mình. Tôi có thể tránh nó không?
hiroshi

0

Điều này cũng hoạt động:

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

map $foo $foo {}giải quyết lỗi nginx: [emerg] unknown "foo" variable - chỉ là không đúng - nhưng nó hoạt động.

Lưu ý: mapphải ở trong khối http {}( nginx/conf.d)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.