nginx並發連接控制模塊ngx_http_limit_conn_module


模塊: ngx_http_limit_conn_module

作用: 根據定義的key限制並發連接數

配置示例:

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 

  limit_conn_status 

  limit_conn_log_level 

 

指令詳解:

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

  

  

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM