空桶
我們從最簡單的限流設定開始:
limit_req_zone $binary_remote_addr zone=ip_limit:10m rate=10r/s; server { location /login/ { limit_req zone=ip_limit; proxy_pass http://login_upstream; } }
$binary_remote_addr 針對客戶端ip限流;
zone=ip_limit:10m 限流規則名稱為ip_limit,允許使用10mb的記憶體空間來記錄ip對應的限流狀態;
rate=10r/s 限流速度為每秒10次請求
location /login/ 對登入進行限流
burst
limit_req_zone $binary_remote_addr zone=ip_limit:10m rate=10r/s; server { location /login/ { limit_req zone=ip_limit burst=12; proxy_pass http://login_upstream; } }
繼續修改配置,解決delay太久導致延遲增加的問題
limit_req_zone $binary_remote_addr zone=ip_limit:10m rate=10r/s; server { location /login/ { limit_req zone=ip_limit burst=12 nodelay; proxy_pass http://login_upstream; } }
limit_req_zone $binary_remote_addr zone=ip_limit:10m rate=10r/s; server { location /login/ { limit_req zone=ip_limit burst=12 delay=4; proxy_pass http://login_upstream; } }
以上是Nginx限流如何配置的詳細內容。更多資訊請關注PHP中文網其他相關文章!