A URL shortening service that converts long URLs into short, shareable links. This project used to generate short URLs with Base62 encoding with collision handling.
Users interact with the system through a web interface where they submit long URLs and receive shortened URLs in return.
The entry point to the system. The nginx server acts as a reverse proxy and load balancer that distributes incoming requests across multiple backend servers.
A dedicated Redis instance is used for rate limiting. It enforces 100 requests per minute per IP address.
Multiple backend servers run the core application:
git clone https://github.com/yourusername/url-shortener.git
cd url-shortener
cd backend
npm install
npm start
PORT=3000
MONGO_URI=your_mongo_uri
BASE_URL=http://localhost:3000