Fairvisor vs. Nginx limit_req

The Situation

Nginx limit_req and limit_conn are solid primitives for simple traffic protection.

But modern AI and multi-tenant APIs need richer dimensions: tenant-aware limits, budget controls, staged enforcement, and analytics.

Comparison

Capability Fairvisor Nginx limit_req / limit_conn
Algorithm Token bucket + cost-based + token-based Leaky bucket (limit_req), connection count (limit_conn)
Limit keys JWT claims, headers, path, User-Agent, IP, combinations $binary_remote_addr and limited variables
Per-tenant isolation Yes (any JWT claim) No (IP-focused unless custom scripting)
Cost-based budgets Yes No
AI features Loop detection, token counting, circuit breaker No
Staged actions Warn -> throttle -> reject Reject or delay
Shadow mode Yes No
Dynamic config Policy hot-reload, SaaS management Requires reload
Analytics Dashboard, per-tenant breakdown, export Basic status + log parsing
Kill-switch Yes, propagated in < 10s Manual config change + reload

When to Use Fairvisor

  • You need business-context-aware limits (tenant, plan, endpoint).
  • You need AI-specific enforcement and budget controls.
  • You want management UI and operational analytics.

When to Use Nginx limit_req

  • Simple IP-based limiting is enough.
  • You have a small set of endpoints and static rules.
  • You do not need tenant analytics or staged policy workflows.

Use Them Together

  • Fairvisor runs on OpenResty/Nginx runtime foundations.
  • Migration can be incremental: policy replacement, not full infra replacement.
  • Keep your Nginx stack while upgrading enforcement depth.

Outgrowing basic Nginx rate limiting?

See migration path from limit_req to Fairvisor