如何在nginx端配置限流策略?

提问者:帅平 问题分类:运维
如何在nginx端配置限流策略?比如允许每个IP每分钟仅能请求2次?
1 个回答
Missyoulonely
Missyoulonely
配置限流的话,主要分为定义策略,应用策略两部分,以下是配置示例:
# 定义限流区域,使用客户端的二进制 IP 地址作为唯一标识
# zone=one:10m 表示创建一个名为 "one" 的内存区域,大小为 10MB
# rate=2r/m 表示每个 IP 地址每分钟最多允许 2 个请求
limit_req_zone $binary_remote_addr zone=one:10m rate=2r/m;
server {
  listen 80;  # 监听 80 端口,接收 HTTP 请求
  server_name localhost;  # 设置服务器名称为 localhost
  location / {  # 配置根路径的请求处理
    # 应用限流配置,使用之前定义的 "one" 区域
    # burst=10 表示可以允许最多 10 个额外请求超出正常限速
    # nodelay 表示在突发请求情况下,这 10 个请求将立即被处理,不会被延迟
    limit_req zone=one burst=10 nodelay;
    # 将请求转发到本地的 8080 端口
    proxy_pass http://localhost:8080;  # 反向代理请求到后端服务
  }
}
发布于:5个月前 (11-19) IP属地:四川省
我来回答