Nginx 流量和連接數限制


1.Nginx流量限制

實現流量限制由兩個指令 limit_rate 和 limit_rate_after 共同完成:

limit_rate
語法:limit_rate rate;

默認值:limit_rate 0;

作用域:http, server, location, if in location

命令概述:限制向客戶端傳送響應的速率限制。參數 rate 的單位是字節/秒,設置為 0 將關閉限速。 nginx 按連接限速,所以如果某個客戶端同時開啟了兩個連接,那么客戶端的整體速率是這條指令設置值的 2 倍。

limit_rate_after
語法:limit_rate_after size;

默認值:limit_rate_after 0;

作用域:http, server, location, if in location

設置不限速傳輸的響應大小。當傳輸量大於此值時,超出部分將限速傳送。

作用范圍:http,server,location,if inlocation

location /seven/{
                root /home/shiyanlou/Documents;
                limit_rate_after 3m;
                limit_rate 20k;
}

2.Nginx 並發連接數限制

limit_conn_zone
語法: limit_conn_zone zone_name $variable the_size

默認值: no

作用域: http

本指令定義了一個數據區,里面記錄會話狀態信息。 variable 定義判斷會話的變量;the_size 定義記錄區的總容量。

limit_conn
語法: limit_conn zone_name the_size

默認值: no

作用域: http, server, location

指定一個會話最大的並發連接數。 當超過指定的最發並發連接數時,服務器將返回 "Service unavailable" (503)。

http {
    limit_conn_zone   $binary_remote_addr  zone=one:10m;
    ...
    server {
        ...
        location /seven/ {
            limit_conn   one  1;
            .....
        }

定義一個叫“one”的記錄區,總容量為 10M,以變量$binary_remote_addr作為會話的判斷基准(即一個地址一個會話)。 限制 /seven/ 目錄下,一個會話只能進行一個連接。 簡單點,就是限制 /seven/ 目錄下,一個 IP 只能發起一個連接,多過一個,一律 503.

----------------------------------【喜歡打賞】-------------------------------------------

小主,辛苦啦!文章棒棒噠,賞杯咖啡吧...
打賞

----------------------------------【喜歡打賞】-------------------------------------------


免責聲明!

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



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