小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

nginx中if判斷實現(xiàn)多重判斷

 JhouShuai 2015-01-19

有些公司可能有這樣的需求,如:我的網(wǎng)站或者網(wǎng)頁游戲需要更新,所有的用戶或者玩家訪問到的是一個停服更新頁面,而本公司的IP可以訪問,甚至說本公司的某個內(nèi)網(wǎng)IP可以訪問,用于確認更新成功與否,針對這個問題寫了如下的訪問控制規(guī)則:

Nginx多重條件判斷(只是一個簡單的例子,自己可以更改或者增加更多的判斷條件
),下面是兩個例子和寫法:
1、可以作為nginx的停服更新使用,僅允許222.222.222.222或者內(nèi)網(wǎng)的兩個IP訪問,其他IP都rewrite到停服頁面
Nginx.conf中加入在你項目的正確位置
  1. set $my_ip ''; 
  2. if ( $remote_addr = 222.222.222.222){set $my_ip 1;} #注意這里的$remote_addr如何用了負載均衡的話,這里應(yīng)該是$http_x_forwarded_for
  3. if ( $remote_addr = 192.168.1.170 ){ set $my_ip 1;}
  4. if ( $remote_addr = 192.168.1.169 ){ set $my_ip 1;}
  5. if ( $my_ip != 1) {rewrite ^/design/(.*)\.php$ /tingfu.html?$1&;}  #將*.php轉(zhuǎn)到tingfu.html

 2、訪問某個php應(yīng)用的時候我只想讓內(nèi)部的某個IP訪問,其他的IP都轉(zhuǎn)到另一個PHP上。如下:
訪問test.php,且IP不等222.222.222.222的跳轉(zhuǎn)到55555.php:
  1. set $test '';
  2. if ( $request_uri ~* /img/test.php ) {
  3.         set $test P;
  4. }


  5. if ( $http_x_forwarded_for !~* ^222\.222\.222\.222.* ) {
  6.         set $test "${test}C";
  7. }


  8. if ( $test = PC ) {  #當條件符合 訪問test.php并且 ip不是222.222.222.222的 轉(zhuǎn)發(fā)到55555.php
  9. rewrite ^(.*)$ /img/55555.php permanent;  
  10. }

nginx中if判斷實現(xiàn)多重判斷 二


if ($remote_addr ~ "^(12.34|56.78)" && $http_user_agent ~* "spider") {
    return 403;
}


set $flag 0;
if ($remote_addr ~ "^(12.34|56.78)") {
    set $flag "${flag}1";
}
if ($http_user_agent ~* "spider") {
    set $flag "${flag}2";
}
if ($flag = "012") {
    return 403;
}


if ($request_uri ~ "xxx.php?xxx") {
set $iftmp Y;
}
if ($http_user_agent ~ "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1)") {
set $iftmp "${iftmp}Y";
}
if ($iftmp = YY) { return 400;}
location / {
proxy_pass https://172.0.0.11;
}

重點一 set $iftmp Y 將iftmp設(shè)置為Y,set命令是一個大大的亮點

重點二 還是set部分set $iftmp "${iftmp}Y" 在set里面 ${iftmp}Y將參數(shù)疊加一次,${iftmp}是一個大大的亮點.

$request_uri是客戶端請求的完整請求路徑,$http_user_agent是用戶端發(fā)出請求的瀏覽器參數(shù).
上面的if判斷是一個簡單防cc攻擊的原型,一般普通的cc攻擊會固定攻擊頁面,然后瀏覽器參數(shù)也大多不變,當前兩個if參數(shù)同時滿足后第三個if就直接返回給請求端400錯誤,






    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多