关于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的限流的主要内容,如果未能解决你的问题,请参考以下文章

NGINX上的限流

nginx的限流问题

Nginx限流和黑名单配置

微服务和API网关限流熔断实现关键逻辑思路

详解4种经典的限流算法

详解4种经典的限流算法