|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
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
2
3
location/mp3{
limit_rate200k;
}
有一种体例可让限速加倍人道化,即传输必定流量后入手下手限速,
好比先全速传输1M,然后入手下手限速:
1
2
3
4
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,则
2、限定哀求数
要限定哀求数,也必需先创立一个限速池,在http段到场以下代码:
1
limit_req_zone$binary_remote_addrzone=one:5m;
限速分为全范围速和部分限速,
关于全范围速,我们只必要在前面加上参数便可,好比每秒20个哀求,rate=20r/s,即:
<divstyle="padding-bottom:0px;text-transform:none;background-color:rgb(255,255,255);text-indent:0px;margin:0px;padding-left:0px;padding-right:0px;font:14px/28px宋体,ArialNarrow,arial,serif;white-space:normal;letter-spacing:normal;color:rgb(44,44,44);word-spacing:0px;padding-top:0px;-webkit-text-stroke-width:0px"><divclass="syntaxhighlighterbash"id="highlighter_65475"style="box-sizing:content-box!important;border-bottom:0px;position:relative!important;text-align:left!important;border-left:0px;padding-bottom:0px!important;line-height:1.1em!important;overflow-x:auto!important;overflow-y:visible!important;font-style:normal!important;margin:0.3em0px;outline-style:none!important;outline-color:invert!important;min-height:inherit!important;padding-left:0px!important;outline-width:0px!important;width:720px;bottom:auto!important;padding-right:0px!important;font-family:Consolas,BitstreamVeraSansMono,CourierNew,Courier,monospace!important;background:white;float:none!important;font-size:1em!important;vertical-align:baseline!important;border-top:0px;top:auto!important;right:auto!important;font-weight:normal!important;border-right:0px;padding-top:0px!important;left:auto!important;border-top-left-radius:0px;border-bottom-left-radius:0px;border-bottom-right-radius:0px;border-top-right-radius:0px">1 |
|