手机看片精品高清国产日韩,色先锋资源综合网,国产哺乳奶水91在线播放,乱伦小说亚洲色图欧洲电影

幫助中心 >  技術知識庫 >  網站相關 >  建站知識 >  Nginx實現if多重判斷配置方法示例

Nginx實現if多重判斷配置方法示例

2015-12-01 16:58:31 92

nginx的配置中不支持if條件的邏輯與/邏輯或運算 ,并且不支持if的嵌套語法,我們可以用變量的方式來實現:

首先是偽代碼(即不被nginx支持),寫在這里只是為了方便理解:

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

從這句話我們可以知道,如果滿足條件一并同時也滿足條件二,就返回一個值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; 
}

這里就相當于是定義一個值(值一),如果滿足條件一這個值一就變成另一個值(值二),如果在滿足條件二那么這個值二就變成另一個值(值三),最后如果值三等滿足我們定義的一個值那么就返回我們的403.

這樣就達到同樣的效果了。

提交成功!非常感謝您的反饋,我們會繼續努力做到更好!

這條文檔是否有幫助解決問題?

非常抱歉未能幫助到您。為了給您提供更好的服務,我們很需要您進一步的反饋信息:

在文檔使用中是否遇到以下問題: