- Traffic distribution — spreads user requests across multiple servers (round-robin, least connections, weighted routing).
- Health checks — detects failed servers and automatically stops sending traffic to them.
- High availability — prevents downtime through failover and redundancy.
- Routing rules — directs traffic based on domain, URL path, headers, or other conditions.
- TLS/SSL handling — manages HTTPS encryption so backend servers can focus on application work.
- Monitoring and metrics — tracks traffic, latency, errors, and server performance.
- Security controls — supports rate limiting, access rules, and protection against abuse.
- Configuration management — allows operators to control behavior through files, APIs, or CLI tools.
These features make it infrastructure because the project helps other applications run reliably at scale, rather than being just an end-user application.