What is Aralez?
Aralez = ิฑึีกีฌีฅีฆ โ Named after the legendary Armenian guardian spirit, a winged dog-like creature that descends upon fallen heroes to lick their wounds and resurrect them.
Built on Rust, on top of Cloudflare’s Pingora engine, Aralez delivers performance, security and scalability โ right out of the box.
Key Features
Remote Config API
Upstreams can be updated live via API โ no restart required.
Dynamic Config Reloads
Upstreams are automatically reloaded on config file change โ no restart required.
TLS Termination
Automatic certificate loading from folder, without a restart.
Zero-Config Protocols
Automatic WebSocket, gRPC, HTTP/2 and SSL upstream detection โ zero configuration needed.
Built-in Authentication
Basic Auth, API Key via x-api-key header, and JWT verification with token issuance.
Load Balancing
Round-robin, failover with health checks, and sticky sessions via cookies.
Prometheus Metrics
Built-in metrics endpoint for monitoring, alerting, and performance analysis.
Built-in Rate Limiter
Per virtualhost and per-path rate limiting. Path limits override global limits.
Kubernetes & Consul
Dynamic pod discovery and health-checked routing via Consul and Kubernetes integration.
HTTP Caching
Local in-memory LRU, TTL behavior, Cache-Control handling website accelerator.
Hot Reload
- Changes to
upstreams.yamlare applied immediately. - No need to restart the proxy โ just save the file.
- If
consulprovider is chosen, upstreams will be periodically updated from Consul’s API.
TLS Support
To enable TLS for a proxy server (currently only OpenSSL is supported):
- Set
proxy_address_tlsinmain.yaml - Provide
tls_certificateandtls_key_file
Caching
Provides local, in memory LRU cache for content delivery acceleration.
Disabled by default. To enable set cache_size_mb and cache_ttl in main.yaml. Restart is required.
cache_ttl is the default TTL if Cache-Control are not present. If upstream sets Cache-Control, the cache_ttl is ignored.
no-cache, no-store, private control headers are respected, pages with these headers won’t be cached.
Works only for GET requests with 200 responses.
Remote Config API
Push new upstreams.yaml over HTTP to config_address (:3000 by default). Useful for CI/CD automation or remote config updates. The URL parameter key=MASTERKEY is required โ its value matches master_key in main.yaml.
curl -XPOST --data-binary @./etc/upstreams.txt 127.0.0.1:3000/conf?key=${MASTERKEY}
License
Notes
- Uses Pingora under the hood for efficiency and flexibility.
- Designed for edge proxying, internal routing, or hybrid cloud scenarios.
- Transparent, fully automatic WebSocket upgrade support.
- Transparent, fully automatic gRPC proxy.
- Sticky session support.
- HTTP/2 ready.
About this site
- This is a static HTML site generated by Hugo .
- This website is served directly by Aralez itself.
- TLS certificates are automatically issued and renewed via Let’s Encrypt,
- 10 requests per second from a single IP limiting is enabled.
