模塊: ngx_http_limit_conn_modulenginx
做用: 根據定義的key限制併發鏈接數api
配置示例:bash
http { limit_conn_zone $binary_remote_addr zone=addr:10m; ... server { ... location /api/ { limit_conn addr 10; limit_conn_status 503; } } }
說明: 示例中定義key(zone=addr)爲addr,分配內存大小爲10m(zone=addr:10m)(若是限制域的存儲空間耗盡了,對於後續全部請求,服務器都會返回 503),同一個ip($binary_remote_addr)和服務器鏈接超過10個(limit_conn addr 10)將會被攔截並返回503(limit_conn_status 503)錯誤碼服務器
limit_conn_zone 併發
limit_conn spa
limit_conn_status 日誌
limit_conn_log_level code
limit_conn_zone 語法: limit_conn_zone key zone=name:size;(設置限制規則、區域名稱及分配的內存大小) 可配置區域: http key: 必選項;設置限制規則;取值能夠是text文本、nginx變量或二者的組合;實例中使用的nginx變量$binary_remote_addr表示根據每一個ip限制併發 name: 必選項; 自定義一個區域名稱; 任意字符串 size: 分配內存的大小
limit_conn 語法: limit_conn zone number; (使用由limit_conn_zone定義的攔截規則, 並設置具體的限制鏈接數量) 可配置區域: http, server, location zone: 必選項; 由limit_conn_zone(zone=name)定義的名稱; 表示使用定義的哪一個限制規則 number: 必選項; 正整數; 表示具體的限制鏈接數量
limit_conn_status 語法: limit_conn_status code; 默認值: 503 可配置區域: http, server, location 表示超出limit_req配置的請求數量後返回給客戶端的錯誤碼使用該指令最低版本 1.3.15
limit_conn_log_level 語法: limit_conn_log_level info | notice | warn | error; 默認值: limit_conn_log_level error; 可配置區域: http, server, location 當服務器拒絕處理因爲速率超過或延遲請求處理而拒絕處理請求時,設置所需的日誌記錄級別。 最低版本: 0.8.18