LNMP环境下_Nginx带宽限制
条评论Nginx下的带宽限制貌似比较简单,下面是我在两台VPS间的测试过程,测试机器用的是BlueVM的9.95美元年付OpenVZ,上个月手贱买的;用来拖数据的是DS2刀月付,很早很早以前花大价钱收来的啊,现在……遍地都是这种价位的!
本文在LNMP一键包环境下测试的,主要修改有两处。
修改nginx默认配置文件,利用nginx的标准模块ngx_http_limit_zone_module,进行会话的并发连接数控制。
1 | cd /usr/local/nginx/conf |
在http{}添加如下:
limit_zone one $binary_remote_addr 10m;
我们在nginx.conf中可以看到一行如下:
#limit_zone crawler $binary_remote_addr 10m;
开始,我只是去除了这行前面的#
,解除注解,不过报错,crawler
必须替换成one
。关于上面这行添加的内容,他主要是定义一个叫one
的记录区,总容量为 10M,以变量 $binary_remote_addr
作为会话的判断基准。
为了测试,我解析了一个域名,并在VPS中添加了这个域名主机。接下来,我们需要修改第二次,就是这个域名配置文件。
#cd /usr/local/nginx/conf/vhost #vi 域名.conf
添加一段:
location / { limit_conn one 1; limit_rate 500k; }
这段表示每个客户端仅允许一个连接,限速为500KB/s。
全部修改之后,检查下配置文件和重载下nginx。
1 | /usr/local/nginx/sbin/nginx –t |
其实这里我遇到一点报错,如下图,不过貌似没影响效果。
根据他这行报错,我修改过nginx.conf
,可是按照他写的修改,直接配置文件检测都不通过,如果您知道怎样这个可以怎样处理掉,还请不吝赐教。
弄好之后,我放了个100MB测试文件,下图是效果,加了限制和不加限制的对比明显。
**【后记】**这个限制呢,他有一定的用处,比如自己的下载资源站之类的,但是,这并不能完全的控制盗链之类问题,我们可以用他的防盗链模块如ngx_http_referer_module
,或者ngx_http_accesskey_module
等,我们可以分析日志,对$http_user_agent
进行匹配,然后返回503
等等。
新的语法规则变了,需使用limit_conn_zone $variable zone=name:size
;详见http://nginx.org/cn/docs/http/ngx_http_limit_conn_module.html
本文标题:LNMP环境下_Nginx带宽限制
文章作者:凹凸曼
发布时间:2015-08-06
最后更新:2024-09-28
原始链接:https://sobaigu.com/nginx-limit-zone.html
版权声明:转载请务必保留本文链接和注明内容来源,并自负版权等法律责任。