Nginx
用“nodelay”選項定義“burst”是什麼意思?
在 Nginx 配置中,當你想通過
limit_req_zone
/來限制請求處理速率時limit_req instructions
,我不太了解該nodelay
選項的使用。據我了解,它會終止高於定義速率的請求,而不會延遲它們。所以它似乎等同於
burst=0
. 這就是為什麼我不明白下面的例子:limit_req zone=one burst=5 nodelay;
burst
定義了可以延遲的請求數量,那麼定義burst
是否有nodelay
選項是什麼意思?
我發現
limit_req
文件足夠清楚。
burst
以這種方式記錄:過多的請求會被延遲,直到它們的數量超過最大突發大小
$$ … $$
nodelay
以這種方式記錄:如果不希望在限制請求的同時延遲過多的請求,則應使用參數 nodelay
請求被限制為符合定義的速率。如果請求以更高的速率傳入,則每時間單位將提供不超過定義的請求數量。然後,您需要決定如何處理這些其他請求。
- 預設情況下(no
burst
, nonodelay
),請求被拒絕並返回 HTTP 503 錯誤。- 使用
burst
,您將定義數量的請求堆疊在等待隊列中,但處理它們的速度不會比定義的每時間單位速率請求快。- 使用
burst
andnodelay
時,隊列不會等待,請求突發將立即得到處理。