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

Nginx實(shí)現(xiàn)if多重判斷配置方法示例

2015-12-01 16:58:31 101

nginx的配置中不支持if條件的邏輯與/邏輯或運(yùn)算 ,并且不支持if的嵌套語(yǔ)法,我們可以用變量的方式來(lái)實(shí)現(xiàn):

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

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

從這句話我們可以知道,如果滿足條件一并同時(shí)也滿足條件二,就返回一個(gè)值403。

下面這是等效的,并真實(shí)可用的配置

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; 
}

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

這樣就達(dá)到同樣的效果了。

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

這條文檔是否有幫助解決問(wèn)題?

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

在文檔使用中是否遇到以下問(wèn)題: