nginxif多條件結合判斷(實現限速)

2022-03-06 10:37:51 字數 1044 閱讀 2169

參考文章:

需求: 要對某一ip下,使用android客戶端的使用者進行限速

原理 就是用set變數進行。 and 就用變數疊加,or就用0或1切換。 nginx的配置中不支援if條件的邏輯與/邏輯或運算 ,並且不支援if的巢狀語法,我們可以用變數的方式來實現

需要兩個變數:test1,test2

test1 變數是為了 if條件使用,,test2是最後滿足條件後 給 limit配置用

配置需要自己加入到nginx中

http配置中配置:

limit_req_zone $test2 zone=anti_spider:1m rate=1r/s;

server配置中配置

其他:一、if語句中的判斷條件(nginx)介紹

1、正規表示式匹配:

==:等值比較;

~:與指定正規表示式模式匹配時返回「真」,判斷匹配與否時區分字元大小寫;

~*:與指定正規表示式模式匹配時返回「真」,判斷匹配與否時不區分字元大小寫;

!~:與指定正規表示式模式不匹配時返回「真」,判斷匹配與否時區分字元大小寫;

!~*:與指定正規表示式模式不匹配時返回「真」,判斷匹配與否時不區分字元大小寫;

2、檔案及目錄匹配判斷:

-f, !-f:判斷指定的路徑是否為存在且為檔案;

-d, !-d:判斷指定的路徑是否為存在且為目錄;

-e, !-e:判斷指定的路徑是否存在,檔案或目錄均可;

-x, !-x:判斷指定路徑的檔案是否存在且可執行;

Nginx if 條件判斷

nginx if 條件判斷 由於公司 網域名稱從http到https的轉移,在測試階段需要公司內部進行測試,公司內部區域網訪問時強制訪問加密的https服務,外部使用者訪問正常的http服務.第一種方法 有的說nginx不支援這種if寫法,但我在nginx配置後是成功了,可能是版本高了以後,ngin...

Nginx if 條件判斷

nginx if 條件判斷 由於公司 網域名稱從http到https的轉移,在測試階段需要公司內部進行測試,公司內部區域網訪問時強制訪問加密的https服務,外部使用者訪問正常的http服務.第一種方法 有的說nginx不支援這種if寫法,但我在nginx配置後是成功了,可能是版本高了以後,ngin...

CASE WHEN THEN END多條件判斷

create table employees emp no int 11 not null,birth date date not null,first name varchar 14 not null,last name varchar 16 not null,gender char 1 not ...