🔁 How to Build a Lightweight Round-Robin HTTP Redirector Using OpenResty
Sometimes, you only need simple HTTP redirection to multiple backend URLs in a round-robin fashion — without load balancers or proxying content.
Here’s how you can achieve it using OpenResty (NGINX + Lua).
🛠 Prerequisites
- 
Ubuntu system (x86_64 / amd64) 
- 
Root or sudo privileges 
1️⃣ Install OpenResty
2️⃣ Configure NGINX for Round-Robin Redirects
Edit the main NGINX configuration file:
Add the following inside the http { ... } block:
How it works:
- 
lua_shared_dict rr_counter 1m;creates a small shared memory segment to track the current URL index.
- 
Each request increments the counter modulo the number of URLs. 
- 
NGINX issues a 302 redirect to the next URL in sequence. 
- 
/healthendpoint can be used for load balancer or CloudFront health checks.
3️⃣ Reload OpenResty
4️⃣ Test the Redirect
Expected output:
Requests cycle through the URLs in order — true round-robin redirection.
✅ Advantages
- 
Minimal server load (no content proxying) 
- 
True round-robin distribution 
- 
Works perfectly behind ELB or CloudFront 
- 
Easily extendable to multiple domains or URL lists 
