如何配置 Nginx 站点限流?

请尝试在评论区里写下答案(如不能清楚表述,那么你可能没真正理解)。欢迎参与,为下一次求职做准备。

如题

摈弃世俗浮躁,追求技术精湛
Summer
讨论数量: 2

Q:如何配置 Nginx 站点限流?

  1. 配置参数
    limit_req_zone $binary_remote_addr zone=mylimit:10m rate=10r/s;
  • limit_req_zone 定义在 http 块中,$binary_remote_addr 表示保存客户端 IP 地址的二进制形式。
  • Zone 定义 IP 状态及 URL 访问频率的共享内存区域。zone = keyword 标识区域的名字,以及冒号后面跟区域大小。16000 个 IP 地址的状态信息约 1MB,所以示例中区域可以存储 160000 个 IP 地址。
  • Rate 定义最大请求速率。示例中速率不能超过每秒 10 个请求。
  1. 设置限流
    location / {
         limit_req zone=mylimit burst=20 nodelay;
         proxy_pass http://real_server;
    }
  • burst 排队大小
  • nodelay 不限制单个请求间的时间
2年前 评论

如果想对某个接口限流,就不能在web-server层处理了 只能在应用层进行处理

2年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!