nginx限速限流限併發防止攻擊

2021-10-10 02:40:41 字數 807 閱讀 6804

limit_conn_zone在http模組內定義,在http、server、location塊內使用

主要用來限制同乙個ip能與伺服器建立多少個tcp連線(為什麼不說http連線,因為http連線就是基於tcp/ip協議的,真正限制的是tcp鏈結數)

#定義鏈結數限制記憶體塊,以ip位址為key,記憶體塊名叫my_limit_zone,大小10mb

limit_conn_zone $remote_addr zone=my_limit_zone:10m;

#宣告限制單ip限制10個連線

limit_conn my_limit_zone 10;

#宣告限制請求傳輸速率在超過500kb後啟用

limit_rate_after 500k;

#宣告每個請求會被限速為100k的網速

limit_rate 100k;

#限制每秒請求數(超出的可以丟棄或者排隊,排隊裡也可以定義佇列長度,超出的丟棄),首先定義請求數限制的記憶體塊,key為二進位制的ip位址,記憶體塊名叫normal_req_limit,大小10m,速率20r/s就是20個request請求每秒

limit_req_zone $binary_remote_addr zone=normal_req_limit:10m rate=20r/s;

#宣告限制請求速率,使用上面這個記憶體塊來記錄,超過速率的給乙個可容納100個請求的佇列,排隊處理,nodelay,無推遲,意思是佇列滿了之後超過的直接丟棄不處理了

limit_req zone=normal_req_limit burst=100 nodelay;

Nginx對同一IP限速限流

nginx通過limit conn zone和limit req zone對同乙個ip位址進行限速限流,可防止ddos cc和flood攻擊,這類文章網上比較多,但是limit req zone中burst漏桶原理說得清楚的卻很少。limit conn zone是限制同乙個ip的連線數,而一旦連線建...

Nginx對同一IP限速限流

limit conn zone是限制同乙個ip的連線數,而一旦連線建立以後,客戶端會通過這連線傳送多次請求,那麼limit req zone就是對請求的頻率和速度進行限制。limit conn zone binary remote address zone addr 10m limit conn a...

Nginx對同一IP限速限流

limit conn zone是限制同乙個ip的連線數,而一旦連線建立以後,客戶端會通過這連線傳送多次請求,那麼limit req zone就是對請求的頻率和速度進行限制。limit conn zone binary remote address zone addr 10m limit conn a...