天天看點

tengine 指定某一組頁面 不允許境外通路

目标 : 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子產品

繼續閱讀