关于nginx的限流
Posted caojiaqiang510
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于nginx的限流相关的知识,希望对你有一定的参考价值。
为了防止防止dos攻击,我们可以在nginx层上面做限流。我是限制nginx上的所有服务,所以添加到http里面 (如果你需要限制部分服务,可在nginx.conf里面选择相应的server或者location添加上便可)。还需要注意因为页面上引用的js,css,图片都算一个连接,所以不要设置太小了,所以单个页面刷新下就有可能刷爆这个限制,超过这个限制就会提示503 Service Temporarily Unavailable。
下面是nginx.conf的相关配置
#限制每个用户的并发连接数,取名conn_one
limit_conn_zone $binary_remote_addr zone=conn_one:10m;
#配置被限流后返回的状态码,默认返回503
limit_conn_status 503;
#限制用户并发连接数为100
limit_conn conn_one 100;
#区域名称为req_one,大小为10m内存区域,用来存储访问的频次信息,平均处理的请求频率不能超过每秒100次。
limit_req_zone $binary_remote_addr zone=req_one:10m rate=100r/s;
#采用漏桶算法,设置每个IP桶的数量为500;nodelay,如果不设置该选项,严格使用平均速率限制请求数,
limit_req zone=req_one burst=500;
以上是关于关于nginx的限流的主要内容,如果未能解决你的问题,请参考以下文章