仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 647|回复: 7
打印 上一主题 下一主题

[CentOS(社区)] 带来一篇nginx 限速

[复制链接]
爱飞 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-14 21:08:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的好朋友们!nginx是个不错的web办事器,供给了全方位的限速功效,重要的功效模块是ngx_http_core_module、ngx_http_limit_conn_module和ngx_http_limit_req_module,第一个模块中有limit_rate功效(限网速带宽),后两个模块从字面上讲,功效分离是限制衔接(limitconnection)和限制要求(limitrequest),这几个模块默许都编译进了nginx焦点。


一切的限制都是针对IP的,是以对CC、DDOS有必定的进攻感化。


限带宽很轻易明确,直接上例子
  1. location/mp3{limit_rate200k;}
复制代码
有一种方法可让限速加倍人道化,即传输必定流量后开端限速,


好比先全速传输1M,然后开端限速:
  1. location/photo{limit_rate_after1m;limit_rate100k;}
复制代码
接上去讲限并发数和要求数。



为何有这两个模块呢?由于我们晓得,一个页面平日有多个子模块,比方5张图片,那末我们要求这个页面时提议了一个衔接,然则这一个衔接包括了5次图片要求,也就是说,一个衔接可以提议屡次要求。我们为了保持用户体验,是限制衔接数照样要求数,要依据现实须要停止选择。


1、限制衔接数
要限制衔接,必需先有一个容器对衔接停止计数,在http段参加以下代码:
  1. limit_conn_zone$binary_remote_addrzone=addr:5m;
复制代码
如许就在内存中创立了一个5M巨细,名为addr的限速池(每一个衔接占用32或64字节,5m巨细可包容数以万计的衔接,平日是足够的,假如5M内存耗尽,将前往503)


接上去须要对server分歧的地位(location段)停止限速,好比限制每一个IP并发衔接数为2,则
  1. limit_connaddr2;
复制代码
2、限制要求数

要限制要求数,也必需先创立一个限速池,在http段参加以下代码:
  1. limit_req_zone$binary_remote_addrzone=one:5m;
复制代码
限速分为全局限速和部分限速,


关于全局限速,我们只须要在前面加上参数便可,好比每秒20个要求,rate=20r/s,即:
  1. limit_req_zone$binary_remote_addrzone=perip:5mrate=20r/s;
复制代码
有时刻我们愿望在location段调剂一下链接,可以借助burst参数
  1. limit_reqzone=oneburst=50;
复制代码
假如不愿望延时,还有nodelay参数
  1. limit_reqzone=oneburst=50nodelay;
复制代码
以上是nginx的限速功效简介,欠妥的地方,迎接斧正。至于详细应用哪一种限速办法,必定要推敲,以避免损坏用户体验。




参考文章
http://wiki.nginx.org/HttpCoreModule#limit_rate
http://nginx.org/cn/docs/http/ngx_http_limit_req_module.html

http://nginx.org/cn/docs/http/ngx_http_limit_conn_module.html
http://wiki.nginx.org/HttpLimitConnModule
http://wiki.nginx.org/HttpLimitReqModule
http://tengine.taobao.org/nginx_docs/cn/docs/http/ngx_http_limit_conn_module.html#limit_zone
本文出自“Purple_Grape的博客”博客,请务必保存此出处http://purplegrape.blog.51cto.com/1330104/1228527


如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的小伙伴们!
老尸 该用户已被删除
沙发
发表于 2015-1-25 09:06:25 | 只看该作者
要增加自己Linux的技能,只有通过实践来实现了。所以,赶快找一部计算机,赶快安装一个Linux发行版本,然后进入精彩的Linux世界,相信对于你自己的Linux能力必然大有斩获。
不帅 该用户已被删除
板凳
发表于 2015-2-2 21:48:00 | 只看该作者
这也正是有别的OS得以存在的原因,每个系统都有其自身的优点。?
若天明 该用户已被删除
地板
发表于 2015-2-8 08:11:23 | 只看该作者
学习Linux应具备的。[书籍+网络资源]
飘灵儿 该用户已被删除
5#
发表于 2015-2-25 08:21:44 | 只看该作者
选择一些适于初学者的Linux社区。
蒙在股里 该用户已被删除
6#
发表于 2015-3-7 21:32:44 | 只看该作者
我感觉linux的学习,学习编程~!~!就去学习C语言编程!!
莫相离 该用户已被删除
7#
发表于 2015-3-15 21:12:14 | 只看该作者
虽然大家都比较喜欢漂亮的mm,但是在学 linux 的过程中,还是要多和“男人”接触一下:P 遇到问题的时候,出来看说和上网查之外,就是要多用 linux 下的 man 命令找找帮助。
admin 该用户已被删除
8#
发表于 2015-3-22 06:09:24 | 只看该作者
生成新的unispimsp.ksc。”另外得到回复后如果问题解决,向帮助过你的人发个说明,让他们知道问题是怎样解决的。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-16 11:30

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表