nginx优化:如何限制请求速率?

2024年12月31日 建站教程

Nginx可以通过limit_req模块限制客户端的请求速率。该模块允许设置限制请求的次数和时间段,可以有效防止恶意请求使服务器过载。

配置代码如下:

# 限速区域,10秒内最多60个请求
limit_req_zone $binary_remote_addr zone=limit_req:10m  rate=60r/s;  

server {
  ... 
  # 开启限速,引用limit_req区域,只能在1秒内超过6个请求
  location /search/ {    
    limit_req zone=limit_req burst=6 nodelay;   
  }
}

参数介绍如下:

limit_req_zone指令用于定义限速区域。

1、$binary_remote_addr:限制键,一般为客户端IP;
2、zone:区域名和内存大小;
3、rate:速率,格式为rate=req/time例如rate=10r/m表示每分钟10个请求

limit_req指令用于在location中开启限速。

1、zone:引用的限速区域名
2、burst:超出速率许可的短时间内最大请求数,默认值为zone定义的rate值
3、nodelay:不延迟,超过速率直接返回503错误

本文链接:http://so.lmcjl.com/news/20446/

展开阅读全文
相关内容