2016-02-02 6 views
0

У меня есть следующие Nginx конфигурации:Множественные условия в карте Nginx

if (condition1) { 
    set $var val1; 
} 
if (condition2) { 
    set $var val2; 
} 

Я читал, что ifIsEvil, а также принимая один запрос занимает слишком много времени, потому что регулярные выражения в пределах условий являются довольно сложными.

Я задаюсь вопросом о реализации его через map, но не могу себе представить, как написать это в хорошем смысле

+0

Что для вас использовать эти условия? –

+0

Чтобы решить, какой статический файл нужно отправить в зависимости от 'useragent', который я проверяю с помощью различных regexp-s –

+0

Ok. Показать реальные условия и использование –

ответ

2

Вы должны использовать map

map $http_user_agent $bundle { 
    default desktop; 

    ~*android.+mobile touch; 
    ~*bb\d+.+mobile touch; 
    ~*fennec   touch; 
    ... 
    ~*meego   pda; 
    ... 
} 

server { 
    # here you could use $bundle variable 
    ... 
} 
+0

Спасибо. Оно работает! –

Смежные вопросы