map nginx中的多个条件

时间:2016-02-02 10:14:27

标签: nginx

我有以下nginx配置:

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

我已经读过ifIsEvil,同时接受一个请求需要花费太多时间,因为条件中的正则表达式非常复杂。

我想通过map来实现它,但无法想象如何以良好的方式编写它

1 个答案:

答案 0 :(得分: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
    ...
}