使用Nginx实现限流

1.http限流配置

#限制请求(请求单个IP,每秒读50次,写10次)
limit_req_zone $uri zone=api_read:20m rate=50r/s; # 读
limit_req_zone $uri zone=api_write:20m rate=10r/s; # 写
#按ip配置一个连接 zone
limit_conn_zone $binary_remote_addr zone=perip_conn:10m;
#按server配置一个连接 zone
limit_conn_zone $server_name zone=perserver_conn:100m;

参数补充说明:
$binary_remote_addr 是限制同一客户端ip地址;
$server_name 是限制同一server最大并发数;
limit_conn 为限制并发连接数;
limit_rate 为限制下载速度;

 

2.server限流配置

#请求限流排队通过 burst默认是0
limit_req zone=api_read burst=100;

#连接数限制,每个IP并发请求为50
limit_conn perip_conn 50;

#服务所限制的连接数(即限制了该server并发连接数量)
limit_conn perserver_conn 200;

#连接限速 (暂时不限制)
#limit_rate 100k;

 

3.nginx 日志采集工具
Filebeat
Gitchat 有相关的文章介绍

posted on 2020-08-17 18:09  Ruthless  阅读(1269)  评论(0编辑  收藏  举报