nginx併發鏈接控制模塊ngx_http_limit_conn_module

模塊: 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
相關文章
相關標籤/搜索