2016-02-02 54 views
0

我有以下nginx的配置:多個條件

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

我讀過ifIsEvil,也正在採取一個請求花費了太多的時間,因爲條件中的正則表達式是相當複雜的。

我通過map疑惑實現它,但無法想象如何把它寫在一個好辦法

+0

您所使用的這些條件? –

+0

決定哪個靜態文件發送取決於'useragent',我檢查與不同的正則表達式-s –

+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 
    ... 
} 
+0

謝謝。有用! –