nginx 请求限制 限流配置
原载于:原文章%77w%77%2Ef%6F%72%61%73%70%2E%63n
nginx 限流配置有两个配置
- 限流单位时间内的请求次数,即限制速率
总配置 limit_req_zone
配置如下:limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;
参数$binary_remote_addr 标示通过远程地址remote_addr 做标示限制,“binary_”的目的是缩写内存占用量,是限制同一客户端ip地址。
参数 zone=one:10m 生成一个大小为10M 名字为one 的内存区域,用来存储限制内容
参数 rate=1r/s; 标示 频率 每秒1次,还有 60r/m 60次每分钟
目录详细配置
配置如下:limit_req zone=one burst=15 nodelay;
参数 limit_req zone=one 即 使用上面总配置的内存
参数 burst 标示爆发大量请求 超过大小5 ,则限制到one缓存区域
承诺书 nodelay 超过访问频次返回 503 错误
配置案例
http {
limit_req_zone $binary_remote_addr zone=forasp:10m rate=1r/s;
server {
location / { #所有内容
limit_req zone=forasp burst=5 nodelay;
}
}
2.限制同一个时间的连接数量,即显示并发数量
总配置 limit_conn_zone 这里是conn 标示连接
配置如下 limit_conn_zone $binary_remote_addr zone=two:10m;
参数解释参考第一个
配置案例
http {
limit_req_zone $binary_remote_addr zone=two:10m;
server {
location / { #所有内容
limit_conn two 1; 限制1个链接
}
}