后台系统稳定支持高并发服务的几大手段 缓存 异步 扩容 降级 限流
这里聊聊通过nginx限流的简单配置
一般可以配置到 http 模块下 增加如下配置
###secrity setting start
limit_req_zone $binary_remote_addr zone=java:50m rate=20r/s;
limit_req_zone $server_name zone=perserver:50m rate=3500r/s;
limit_req_zone $uri zone=perport:50m rate=2000r/s;
limit_req_log_level error;
第1个参数:limit_req_zone nginx 限流关键字 $binary_remote_addr表示保存客户端IP地址的二进制形式 $uri表示根据请求uri限流 linux内置变量在文末有所整理
第2个参数:Zone定义IP状态及URL访问频率的共享内存区域。zone=keyword标识区域的名字,以及冒号后面跟区域大小。16000个IP地址的状态信息约1MB。
第3个参数:Rate定义最大请求速率。示例中速率不能超过每秒20个请求。
limit_req_log_level 定义了限流日志的错误级别
以上只是我们定义了限流规则 要让其生效 还需在 location 模块下进行引入
location / {
proxy_pass http://local_worker;
proxy_redirect off;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_fo