nginx限制文件的下载速度

2016-5-29 Mr.linus 运维技术

介绍

有些时候需要把一些文件放到nginx供用户下载,但是你又怕用户占用大量带宽,这时候就应该给客户端限制传输速度了。
limit_rate_after 5m; #前5M的下载内容不进行限速
limit_rate 1m; #限速1M

举例:

 location  /download/ {
            limit_rate_after 5m;
            limit_rate  1m;
            alias /data/html/;
        }

这里的“limit_rate 1m;”的“1m”就是限速1M的意思,“0”就算不限速,
limit_rate_after 5m; 是指传输5m不限速,完成后限速1M
这里的限制是给每个请求的,如果用户开两个连接就是限制的两倍带宽,

当你带宽有限情况下只能限制用户的连接数,来限制用户使用最大带宽
也可以根据连接连接数限制总带宽, 连接数超过限制直接返回“ 503 Service Temporarily Unavailable”

 http {
    ....
    server {
    .....
    limit_conn_zone $server_name zone=servers:10m;
    server {
        location /download/ {
            limit_conn servers 10;
            limit_rate_after 500k;
            limit_rate 50k;
        }
    }
    }}

这里限制本域名的的连接数10个,每个连接预先不限制速度下载500k,然后再限速50k下载,这样10个连接同时下载最小的带宽 50k*10 最大带宽5000k

标签: Nginx

发表评论:

Powered by Mr.Linus 蜀ICP备16005020号