|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
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有必定的进攻感化。
限带宽很轻易明确,直接上例子- location/mp3{limit_rate200k;}
复制代码 有一种方法可让限速加倍人道化,即传输必定流量后开端限速,
好比先全速传输1M,然后开端限速:- location/photo{limit_rate_after1m;limit_rate100k;}
复制代码 接上去讲限并发数和要求数。
为何有这两个模块呢?由于我们晓得,一个页面平日有多个子模块,比方5张图片,那末我们要求这个页面时提议了一个衔接,然则这一个衔接包括了5次图片要求,也就是说,一个衔接可以提议屡次要求。我们为了保持用户体验,是限制衔接数照样要求数,要依据现实须要停止选择。
1、限制衔接数
要限制衔接,必需先有一个容器对衔接停止计数,在http段参加以下代码:- limit_conn_zone$binary_remote_addrzone=addr:5m;
复制代码 如许就在内存中创立了一个5M巨细,名为addr的限速池(每一个衔接占用32或64字节,5m巨细可包容数以万计的衔接,平日是足够的,假如5M内存耗尽,将前往503)
接上去须要对server分歧的地位(location段)停止限速,好比限制每一个IP并发衔接数为2,则2、限制要求数
要限制要求数,也必需先创立一个限速池,在http段参加以下代码:- limit_req_zone$binary_remote_addrzone=one:5m;
复制代码 限速分为全局限速和部分限速,
关于全局限速,我们只须要在前面加上参数便可,好比每秒20个要求,rate=20r/s,即:- limit_req_zone$binary_remote_addrzone=perip:5mrate=20r/s;
复制代码 有时刻我们愿望在location段调剂一下链接,可以借助burst参数- limit_reqzone=oneburst=50;
复制代码 假如不愿望延时,还有nodelay参数- 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教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的小伙伴们! |
|