1、定义限制请求域
rate limit首先要定义一个或多个zone,然后在特定的context使用它们。这些定义一般定义在http上下文中。
http {
## 对每一个IP的请求限制为1次每秒
limit_req_zone $binary_remote_addr zone=perip:10m rate=1r/s;
## 对一个server_name下的请求限制为10次每秒(这个数值有点低,一般会改大很多)
limit_req_zone $server_name zone=perserver:10m rate=10r/s;
}
2、使用请求限制
可以在 http, server,location 上下文使用上面定义的域,使用方法如下:
server {
...
limit_req zone=perip burst=5 nodelay;
limit_req zone=perserver burst=10;
location /api {
limit_req zone=perip burst=3 nodelay;
}
}
网友评论