Nginx中IF語(yǔ)句實(shí)現(xiàn)數(shù)學(xué)比較功能
更新時(shí)間:2015年02月07日 20:24:41 投稿:junjie
這篇文章主要介紹了Nginx中IF語(yǔ)句實(shí)現(xiàn)數(shù)學(xué)比較功能,即在Nginx中用if判斷數(shù)字大小,類(lèi)似編程語(yǔ)言中的邏輯比較,需要的朋友可以參考下
nginx的if支持=、!= 邏輯比較, 但不支持if中 <、<、>=、<= 比較.
本示例使用了set-misc-nginx-module
復(fù)制代碼 代碼如下:
location = /test/ {
default_type html;
set_random $a 0 9; #$a 隨機(jī) 從0-9取
if ( $a <= 4 ){ #$a 如果 < 4 這是錯(cuò)誤的寫(xiě)法
echo 'a: $a is lte 4';
}
if ( $a >= 5 ){ #$a 如果 > 5 這是錯(cuò)誤的寫(xiě)法
echo 'a: $a is gte 5';
}
}
上面的配置, 在啟動(dòng)nginx時(shí)會(huì)報(bào)錯(cuò)誤的.
即然不支持,那有沒(méi)有辦法小小地彌補(bǔ)下呢?
復(fù)制代碼 代碼如下:
location = /test/ {
default_type html;
set_random $a 0 9; #$a 隨機(jī) 從0-9取
if ( $a ~ [0-4] ){ #$a 如果 正則匹配 0-4
echo 'a: $a is lte 4';
}
if ( $a ~ [5-9] ){ #$a 如果 正則匹配 5-9
echo 'a: $a is gte 5';
}
}
測(cè)試10次:
復(fù)制代碼 代碼如下:
a: 8 is gte 5
a: 9 is gte 5
a: 2 is lte 4
a: 1 is lte 4
a: 8 is gte 5
a: 0 is lte 4
a: 9 is gte 5
a: 1 is lte 4
a: 4 is lte 4
a: 5 is gte 5
...
附:NGINX竟然不支持這樣的寫(xiě)法....
復(fù)制代碼 代碼如下:
location = /test/ {
default_type html;
set_random $a 0 9; #$a 隨機(jī) 從0-9取
set_random $b 0 9; #$b 隨機(jī) 從0-9取
set $ereg "[0-$b]";
if ( $a ~ $ereg ){ #$a 如果 正則匹配 0-$b
echo 'a: $a is lte b: $b ereg: $ereg';
}
if ( $a !~ $ereg ){ #$a 如果 正則不匹配 0-$b
echo 'a: $a is gt b: $b ereg: $ereg';
}
}
求大牛來(lái)實(shí)現(xiàn)...
相關(guān)文章
Nginx同一個(gè)域名配置多個(gè)項(xiàng)目的實(shí)現(xiàn)方法
這篇文章主要介紹了Nginx同一個(gè)域名配置多個(gè)項(xiàng)目的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03
Nginx捕獲并自定義proxy_pass返回的錯(cuò)誤問(wèn)題
這篇文章主要介紹了Nginx捕獲并自定義proxy_pass返回的錯(cuò)誤問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-06-06
nginx?405?not?allowed問(wèn)題三種解決方法
這篇文章主要給大家介紹了關(guān)于nginx?405?not?allowed問(wèn)題三種解決方法的相關(guān)資料,當(dāng)您遇到"405 Not Allowed"錯(cuò)誤時(shí),通常表示服務(wù)器不允許您使用所請(qǐng)求的HTTP方法,以下是一些可能的解決方法,需要的朋友可以參考下2023-08-08

