http { …… limit_zone one $binary_remote_addr 10m; …… server { location / { …… limit_conn one 2; limit_rate 40k; } } }
以上配置解釋:limit_zone針對每個IP定義一個存儲session狀態的 容器。這個示例中定義了一個名叫one的10m大小的容器,這個名字會在後面的limit_conn中使用。limit_conn指定每個訪客只能建立兩 條鏈接,limit_rate限制每條鏈接的速度不超過40K。所以,以上配置限制用戶訪問此站點總速度上限為80K。
limit_zone
語法:limit_zone zone_name $variable memory_max_size
作用域:http
limit_conn
語法: limit_conn zone_name 允許每個客戶端建立的鏈接數
作用域:http, server, location
limit_rate
語法:limit_rate 每個鏈接的最大速率
作用域:http, server, location
案例1:下載資源放在http://domain/download/路徑下,針對每個訪客下載限速為100K,且只能同時鏈接1個下載鏈接。
http { server { location /download/ { …… limit_conn one 1; limit_rate 100k; } } }
案例2:每個訪客訪問站點的速度最大不超過100K,且可建立5條鏈接。
http { server { location /download/ { …… limit_conn one 5; limit_rate 20k; } } }
由於linit_rate是對每個鏈接限速,以上例子有5條鏈接,保證總速度不超過100K則每條鏈接不超過20K。
關於limit_zone的原始文檔,請見 http://wiki.Nginx.org/NginxHttpLimitZoneModule
關於limit_rate和limit_conn的原始文檔,請見 http://wiki.Nginx.org/NginxHttpCoreModule