歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux管理 >> Linux配置 >> Nginx訪問限速配置詳解

Nginx訪問限速配置詳解

日期:2017/2/27 14:58:49   编辑:Linux配置
用Nginx建站,常會有限速需求。開發測試階段在本地限速模擬公網的環境,方便調試。投入運營會有限制附件下限速度,限制每個用戶的訪問速度,限制每個IP的鏈接速度等需求。

剛遇到一個Bug在網絡很卡的情況下才能重現,本地調試訪問本機速度太快,配置Nginx成功達到限速目的,在此分享出來。

配置簡單,只需3行,打開“/usr/local/nginx/conf/nginx.conf”配置文件修改如下:
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

Copyright © Linux教程網 All Rights Reserved