1. 程式人生 > >Nginx 限制訪問速率

Nginx 限制訪問速率

並發 修改 body clas onf 說明 con gin class

本文測試的nginx版本為
nginx version: nginx/1.12.2

Nginx 提供了 limit_rate 和limit_rate_after,舉個例子來說明一下
在需要限速的站點 server 域中添加一下代碼
location / {
  limit_rate_after 500k;
  limit_rate 50k;
}

大概意思是:假如用戶下載某個大文件,下載量達到 500k 後,便控制其速度在 50k 以內。
此控制是針對單個連接而言的。換言之,只能限制單個連接的帶寬,不能限制總帶寬。不過使用 limit_conn 模塊的話,可以在一定程度上緩解問題
在nginx.conf的 http 域中先添加以下代碼
limit_conn_zone $server_name zone=servers:10m;
然後修改 server 域中代碼
server {
  location / {
    limit_conn servers 1000;
    limit_rate_after 500k;
    limit_rate 50k;
  }
}

通過 limit_conn 限制了並發連接數,於是也就限制了總帶寬。

Nginx 限制訪問速率