ip_hash 默认行为与限制
ip_hash 本身只负责将请求哈希到固定后端,不直接提供频率限制功能。要实现单 ip 限流,必须结合 limit_req_zone 和 limit_req 指令。

配置限流规则并应用到 upstream
在 http 块中定义共享内存区域,并在 location 或 upstream 中使用该规则。

http {
limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;
upstream backend {
ip_hash;
server 192.168.1.10:8080;
server 192.168.1.11:8080;
}
server {
listen 80;
location /api/ {
limit_req zone=one burst=5 nodelay;
proxy_pass http://backend;
}
}
}
基于特定 IP 的调试与验证
通过模拟不同频率的请求,观察 Nginx 返回的 503 Service Temporarily Unavailable 状态码,确认限流生效。











