Fabio
What it is
Fabio is free, open-source, self-hosted software that proxies HTTP and TCP traffic. It builds routing from Consul data: services can announce accepted paths with tags, and Fabio updates its routing table when that data changes without restarting. Its primary role is distributing incoming internet requests to frontend services; the documentation says it is not intended to route between frontend and backend services because Consul service discovery handles that case. Fabio supports route-specific access controls, authorization, customizable logs, redirects, compression, header injection, path changes, WebSockets, server-sent events, and transparent gRPC proxying. It can terminate TLS, forward HTTPS upstream requests, use certificate stores from files, HTTP servers, Consul, or Vault, and handle raw TCP and TCP-SNI forwarding. Traffic shaping can send a percentage of traffic upstream. A web interface shows the current routing table, and metrics integrations include Graphite, StatsD/DataDog, and Circonus. Deployment options include source, binaries, Docker, and Homebrew. It runs on Linux, macOS, and Windows, and Consul is required for service discovery.
For and against
For
- Free MIT-licensed open-source software
- Routing updates without restarts
- HTTP, TCP, and gRPC proxying
- TLS termination and dynamic certificates
- Web UI and metrics integrations
Against
- Requires Consul for service discovery
- Self-hosted deployment
- Not intended for frontend-backend routing
- Primary maintenance shifted to ENA and community
The verdict
Fabio provides Consul-driven routing with broad HTTP, TCP, TLS, and traffic-management capabilities. It is most relevant when your architecture already uses Consul and needs a self-hosted edge proxy.
Who it suits
Fabio suits teams running self-hosted frontend services that already use Consul for discovery. It is available across Linux, macOS, and Windows deployment environments.
Plans and prices
Fabio (open source)
MIT-licensed software · Consul required for service discovery
Read 11 Oct 2026 · github.com
On the record
- Automatic routing
- When a Consul service registers path tags, Fabio updates its routing table as soon as Consul data changes, without restarting or reloading.fabiolb.net · read 11 Oct 2026
- Deployment
- The project README lists installation from source, prebuilt binaries, Docker, and Homebrew.github.com · read 11 Oct 2026
- Integrations
- The project README says Fabio integrates with Consul, Vault, Amazon ELB, and Amazon API Gateway.github.com · read 11 Oct 2026
- Live changes
- Fabio can hot reload its routing table without downtime and wait for requests to finish before shutting down.fabiolb.net · read 11 Oct 2026
- Maintainer
- The project site says primary maintenance has been the responsibility of ENA and the user community since January 2020.fabiolb.net · read 11 Oct 2026
- Maintenance
- The project site says primary maintenance has been the responsibility of Education Networks of America and the user community since January 2020.fabiolb.net · read 11 Oct 2026
- Metrics
- The feature page lists support for Graphite, StatsD/DataDog, and Circonus metrics.fabiolb.net · read 11 Oct 2026
- Notable limit
- The deployment page says Fabio is currently not used as a frontend-to-backend or backend-to-backend router because Consul service discovery already solves that problem.fabiolb.net · read 11 Oct 2026
- Operations
- Fabio provides a web UI for examining the current routing table and supports metrics integrations.fabiolb.net · read 11 Oct 2026
- Primary use
- Fabio is intended to distribute incoming HTTP(S) and TCP requests from the internet to frontend services.fabiolb.net · read 11 Oct 2026
- Primary use case
- The main use case is distributing incoming HTTP(S) and TCP requests from the internet to frontend services.fabiolb.net · read 11 Oct 2026
- Product
- Fabio is an HTTP and TCP reverse proxy that configures its routing from Consul data.fabiolb.net · read 11 Oct 2026
- Proxy features
- Fabio supports transparent gRPC proxying, HTTP compression, header injection, redirects, path prepending and stripping, WebSockets, and server-sent events.fabiolb.net · read 11 Oct 2026
- Purpose
- Fabio is an HTTP and TCP reverse proxy that configures itself with data from Consul.fabiolb.net · read 11 Oct 2026
- Routing features
- Features include route specific access control, customizable access logs, authorization mechanisms, and HTTP redirects.fabiolb.net · read 11 Oct 2026
- Security
- The README says release hashes are signed with a PGP key and describes TLS certificate verification behavior for upstream HTTPS connections.github.com · read 11 Oct 2026
- Security detail
- The README says binary release hashes are signed with a PGP key and notes that HTTPS upstream certificates without matching SAN extensions are not validated by newer builds.github.com · read 11 Oct 2026
- Service mesh limits
- The documentation says Fabio is currently not used to route traffic among frontend and backend services because Consul service discovery already handles that use case.fabiolb.net · read 11 Oct 2026