Nginx下载限速

Nginx可以通过HTTPLimitZoneModule和HTTPCoreModule两个模块来实现对目录和IP进行下载限速。

先来一个配置示例看下:

limit_zone one $binary_remote_addr 10m;
server 
{ 
listen       80;
server_name  test.361way.com;

location / {
root   /var/www/html;
index  index.html index.htm index.php;
autoindex on;
autoindex_exact_size off;
autoindex_localtime on;
limit_conn one 2;
limit_rate 10k;
}
}

该配置中分了两部分。

上面一部分用到了模块HTTPLimitZoneModule的用法。上面的配置中定义了一个名字为one大小为10M的容器,用于存储每个IP的session状态。该容器的大小要求大于等于32K,即每个session的大小为大于等于32k。按本例中10M大小来算,可以处理320000个session 。配置完该容器后,HTTPLimitZoneModule模块下还有另外一个参数limit_conn,配合limit_zone参数使用。如本例中,指定了one容器中,限制每个IP只能发起来两个连接。HTTPLimitZoneModule模块的详细用法可以参看其官方wiki页面。本示例中的配置是只针对根目录的。如果要对其他目录设置,改为其应的location /path 即可。

下面接着看第二部分,即HTTPCoreModule模块部分。该模块所该的参数比较多。但对于速度方面的限制主要为limit_rate参数。该参数用于限制每个连接的速度大小。本例中限制每个连接的最大下限速度为10k/s 。不过本例中对于每个IP的下载速度的峰值是多大呢?

很简间,单个IP的最大连接为2,每个连接的最大速度为10k,每个IP的最大速度即为:10k * 2 = 20k/s 。HTTPCoreModule模块的其他用法,也可以参看该模块的官方wiki

总结:

Nginx以按默认方式编译安装的话自动会带以上两个模块的,不像apache需要通过编译时指定或动态加载第三方模块。从配置上来看,nginx的配置比较比较简洁,但功能上不如apache的mod_bw模块丰富。

原文地址:http://blog.51cto.com/13505030/2066756

时间: 2024-10-17 15:09:20

Nginx下载限速的相关文章

nginx 下载限速,防盗链

学习nginx中在网上遇到这些功能点特记之 NGINX下载限速: 先在 http 区段找到 limit_zone,再把注释拿掉~# 设定一个叫做 crawler 的区域,大小为 20MB limit_zone crawler $binary_remote_addr 20m 然后在 server 的区段加上 # 限制档案类型只能单线下载 location ~ .*\.(zip|rar|gz|tar|exe|mp3|flv|swf|jpg|jpeg)$ { limit_conn crawler 1;

nginx 下载限速

You should include a directive like this in your nginx configuration file (inside the block of your server configuration): limit_rate 150k; This limits the speed of transmission of the answer to client. It works as a limit for each connection, not fo

Nginx下载防盗链(迅雷等下载软件)

什么是下载盗链   假设我们是一个B站,有些视频资源是可以提供给用户下载的.这时迅雷等其他下载软件,也提供下载该视频的服务, 但是迅雷很不厚道的,将我们的下载资源提供给他的用户,下载.占用我们的带宽来服务他的用户,这是绝对不可以忍了的. 使用来源判断根本不靠谱,只能防止一些小白站点的盗链,迅雷之类的下载工具完全无效,如果你是 nginx 的话,使用 secure link 完美解决这个问题,远离迅雷. 本文仅用于下载服务器,不适用于图片防盗链. 原理 用户访问 down.php down.php

nginx实现限速

项目中有一个需求,需要限制每个容器的网速,避免某些容器占用太多资源,导致其他容器无法使用,但是docker对于网速的限制支持的有点弱,由于容器中的所有进程和APP的交互都是通过nginx的,所以就想到能不能用通过nginx来限速,那就是limit_rate指令,详细文档参考:http://nginx.org/en/docs/http/ngx_http_core_module.html#limit_rate 自测步骤: 1.测试未添加limit_rate指令前的速度: 由于是在一台低配版的阿里云服

nginx之旅第一篇:nginx下载安装、nginx配置文件详解、nginx默认网站

一.nginx下载安装 版本nginx 1.15.5 系统环境centos7.5(本机ip192.168.199.228) 关闭selinux 和防火墙firewall 1.下载 wget http://nginx.org/download/nginx-1.15.5.tar.gz -P /usr/src 2.安装 安装大概过程 配置---编译---安装 配置 1)检查环境 是否 满足安装条件 依赖解决 2)指定安装方式 配置文件 命令文件 各种文件放哪里 开启模块功能[内 置模块 三方模块] 3

使用Nginx实现资源下载限速

大家都知道使用迅雷在现在资源的时候,如果你不是会员就会有一个试用加速的时间,或者是下载多少 M的试加速的机会,其实在开Nginx也有这样的功能,只是大家不熟悉,这个功能几乎很少用,那么今天我给大家讲解一下这个功能如何配置.比如你向让用户下载的前100M文件不限速度,当达到100M以后速度限制在10K ,并且每一个用户的链接只有一个.配置 首先在http的区域中中第一下载限制的名称 以及容器 如下所示limit_conn_zone $binary_remote_addr zone=mylimit:

后台自定义下载限速控制

有时候为了做带宽控制,需要对服务器资源配置限速下载(如通过web服务器配置限速的配置参数),但一般这都是统一的对所有目录资源生效,使用上不够灵活. 我们可以自行开发一个限速模块,通过GET参数来定制每个资源的限速大小(注明:为了防止客户端修改限速参数值,可以增加校验参数,如生成下载链接时一并生成ts,加密密文等,这些不在本文涉及范围内,实现起来也很简单) 例如如下链接: http://localhost/dl/500K //服务器不限速 http://localhost/dl/5M?limitr

Nginx下载服务生产服务器调优

一.内存调优 内核关于内存的选项都在/proc/sys/vm目录下. 1.pdflush,用于回写内存中的脏数据到硬盘.可以通过 /proc/sys/vm/vm.dirty_background_ratio调整. 首先查看这个值默认应该是10. [[email protected] ~]# cat /proc/sys/vm/dirty_background_ratio 10 这个值是一个阀值,说明如果内存中的脏数据达到系统总内存的10%时,那么pdflush进程就会启动,将内存中的脏数据写回硬盘

yum info 查不到nginx下载info的问题

如果查看nginx信息提示nginx找不到,那么可以通过修改rpm源来进行后续步骤,执行命令:rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm 然后再查看yum info nginx就可以查询到版本信息了 然后 yum instal -y nginx就可以下载了