xfy 4562dd5a7d docs: 添加子目录 AGENTS.md 文档
deepinit 生成的子目录级 AGENTS.md 文件,帮助 AI agents 理解各功能模块:
- docs/config/: advanced, basic, caching, load-balancing, lua, rewriting, security, ssl
- docs/lua/: api-gateway, authentication, caching, dynamic-routing, logging-monitoring, middleware, rate-limiting, websocket

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-23 10:35:49 +08:00

1.1 KiB

rate-limiting

Purpose

限流示例目录,演示如何使用 Lua 实现请求限流、令牌桶算法等限流功能。

Key Files

File Description
README.md 功能说明和使用指南
access.lua 限流实现:令牌桶、滑动窗口、请求计数
nginx.conf NGINX 配置示例:限流钩子集成

For AI Agents

Working In This Directory

  • 令牌桶算法:固定速率生成令牌,请求消耗令牌
  • 滑动窗口:统计时间窗口内请求数
  • 支持按 IP、全局限流
  • 限流触发返回 429 Too Many Requests

Testing Requirements

  • 限流逻辑通过单元测试验证
  • 测试令牌桶、滑动窗口算法正确性

Common Patterns

  • 令牌桶:local tokens = min(max_tokens, tokens + rate * elapsed)
  • 限流检查:if tokens < 1 then ngx.exit(429) end
  • 滑动窗口:使用共享字典存储请求时间戳

Dependencies

Internal

  • ../../../internal/lua/ - Lua 脚本引擎
  • ../../../internal/middleware/security/ratelimit.go - 限流中间件