介绍
有些时候需要把一些文件放到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
!评论内容需包含中文