LNMP环境下Nginx带宽限制

时间:14-06-16 栏目:VPS教程 作者:赵 容 评论:5 点击: 5,219 次

最近研究下带宽限制,纯无聊,一则我也没有被看上的给人拼命拖数据的站,二则确实不知道玩什么了……Nginx下的带宽限制貌似比较简单,下面是我在两台VPS间的测试过程,测试机器用的是BlueVM的9.95美元年付OpenVZ,上个月手贱买的;用来拖数据的是DS2刀月付,很早很早以前花大价钱收来的啊,现在……遍地都是这种价位的!

本文在军哥LNMP一键包环境下测试的,主要修改有两处。

修改nginx默认配置文件,利用nginx的标准模块ngx_http_limit_zone_module,进行会话的并发连接数控制。

#cd /usr/local/nginx/conf
#vi 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。

#/usr/local/nginx/sbin/nginx –t
#service nginx reload

其实这里我遇到一点报错,如下图,不过貌似没影响效果。

nginx-limit-1

根据他这行报错,我修改过nginx.conf,可是按照他写的修改,直接配置文件检测都不通过,如果您知道怎样这个可以怎样处理掉,还请不吝赐教。

弄好之后,我放了个100MB测试文件,下图是效果,加了限制和不加限制的对比明显。

nginx-limit

【后记】这个限制呢,他有一定的用处,比如自己的下载资源站之类的,但是,这并不能完全的控制盗链之类问题,我们可以用他的防盗链模块如ngx_http_referer_module,或者ngx_http_accesskey_module等,我们可以分析日志,对$http_user_agent进行匹配,然后返回503等等。

香港/美国/国内高速VPS

声明: 博客仅为分享信息绝非推荐,网站不参与交易绝非中介,内容均仅代表个人观点绝非权威,读者请自行考虑后入手并自担风险!一分钱一分货仍是恒久不变之真理,未成年读者(包括生理和心理)请在监护人陪同下访问本站!本文由( 赵 容 )原创编译,转载请保留链接: LNMP环境下Nginx带宽限制鄙视无耻复制行为!
关于隐私: 赵容非全职打理博客,所有评论不保证审核时间进度,我有义务保证您的个人信息不经由赵容部落透露给任何第三方,随意或虚假邮箱评论会自动进入垃圾箱无法展示和给您回应.
关于安全: 任何IDC都有倒闭和跑路的可能,出口线路更不可控,月付和备份是您的最佳选择,请保持良好的、有规则的备份习惯.

LNMP环境下Nginx带宽限制:目前有5 条留言

  1. 4楼
    老站长:

    收益了,我们想限制单个虚拟主机的总带宽或者总连接怎么设置?

    2015-10-14 23:41 [回复]
  2. 地板
    fax:

    比较实用

    2014-06-17 16:57 [回复]
  3. 板凳
    csj555:

    搜了下语法规则变了,需使用limit_conn_zone $variable zone=name:size;
    htt p://nginx.org/cn/docs/http/ngx_http_limit_conn_module.html

    2014-06-16 20:21 [回复]
    • 赵 容:

      感谢分享!

      2014-06-16 20:35 [回复]
  4. 沙发
    小丁丁:

    赞一个

    2014-06-16 13:16 [回复]

发表评论


海星云主机

广而告之