1. 程式人生 > >tengine 指定某一組頁面 不允許境外訪問

tengine 指定某一組頁面 不允許境外訪問

xxx 特征 add != ret AD amp .aspx and

目標 : 85521A 這本刊 不允許境外訪問
特征: 經過分析 該刊的所有url 均為
http://xxxxx /journal/xxxx.aspx?xxx=85521A&xxxxx
也就是說, 特征為 $args ~ .85521A.
實現方法: geoIP
判斷條件1: $args ~
.85521A.
判斷條件2:$geoip_country_code != CN
經過測試 nginx 的if 不能 and or 等邏輯操作;並且 nginx if 不能嵌套
因此 采用的方法是 設置一個變量 比如$block,
先賦值給 $block deny
然後判斷條件1 真的話 重新賦值 $block 為${flag}un
然後判斷條件2 真的話 再重新賦值 $block 為${block}cn
那麽 如果2個條件都滿足的話 $block 為 denyuncn
只滿足其中一個的話 $block 就是 denycn 或者 denyun
最後 判斷 如果 $block 為denyuncn 那麽就不允許訪問
則實現目標

....
location xxxx{
........
set $block ‘deny‘;
if ($args ~ .85521A.* ) {
set $block "${block}un";
}
if ($geoip_country_code != CN){
set $block "${block}cn";

}
if ($block = ‘denyuncn‘){
add_header Content-Type "text/plain;charset=utf-8";
return 200 "You do not have access this resure in your country ";
}
}
........

本文未闡述如何在tengine中編譯geo模塊

tengine 指定某一組頁面 不允許境外訪問