nginx 代理轉發控制過濾源地址的請求


因為nginx配置文件中不支持邏輯運算,所以需要同時滿足多個條件的話 可以用如下方式

set $flag 0; # 設置個初始值
if ($uri !~ (/aaa|/bbb/ccc|/ddd|/eee|/fff/v2n)){   #判斷請求的uri 里面有沒有包含這些內容("/app"  "/bbb/ccc"  "/ddd"   "/eee"  "/fff/v2n") 
set $flag "${flag}1";#如果不包含   賦值為01
}
if ($host ~ ^(www.aa.bb)){# 如果是通過域名www.aa.bb 訪問進來的
set $flag "${flag}1";                # 賦值為011
}
if ($flag = "011"){
return 403;                     #返回403狀態碼      整體就是從域名www.aa.bb請求進來的 且uri內容不包含"/app"  "/bbb/ccc"  "/ddd"   "/eee"  "/fff/v2n"的都返回403
}

為了方便驗證觀察 可以在nginx的日志設置 log_format main里面加兩個參數  "$host"  "$flag"  來打印出來 請求來源地址 和flag值

這樣就做到了控制

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM