Ferrix Official Documentation
Welcome to the official documentation for Ferrix — a high-performance web server and reverse proxy inspired by Nginx, built in Rust (Tokio, Hyper, Axum), featuring a modern React Web Dashboard and a RESTful Control Plane API for zero-downtime hot reloading.
📚 Table of Contents
-
- What Ferrix is and project motivation.
- Architectural comparison with Nginx and Caddy.
- Memory safety and concurrency advantages of Rust.
-
02. Installation and Execution
- System prerequisites.
- Building the core proxy (Rust) and dashboard (React).
- Running via CLI, command flags, and background daemon execution.
- Containerization with Docker.
-
- Asynchronous runtime with Tokio, Hyper, and Axum.
- Zero-Downtime Hot-Reload via atomic pointer swaps (
ArcSwap). - Metric collector, lock-free circular log ring buffer, and Server-Sent Events (SSE).
- Codebase structure and modularity.
-
04. Feature & Configuration Guide
ferrix.yamlconfiguration structure.- Virtual Hosts, domain matching, and prefix/regex routing rules.
- Load balancing algorithms (Round-Robin, Weighted, Least Connections, IP Hash, Random).
- Active health checks and automated failover (
proxy_next_upstream). - Transparent WebSocket tunneling.
- Static file serving and
try_filesfor Single Page Applications (SPAs). - Rate limiting (Token Bucket), IP CIDR ACLs (Allow/Deny), and HTTP Basic Auth.
-
- Complete endpoint specification and SSE live stream.
- Practical
curlexamples and JSON payloads. - CRUD management for Virtual Hosts and Upstreams via API.
-
- Overview of all views (Dashboard, Virtual Hosts, Live Requests, Upstreams, Nginx Import, Config Editor).
- Real-time request inspection and telemetry.
- Visual configuration management without manually editing files.
-
- What p50, p99, req/s, RSS/PSS, sendfile, SNI, ACME and the other terms mean.