README ¶
fabio is a fast, modern, zero-conf load balancing HTTP(S) router for deploying applications managed by consul.
Register your services in consul, provide a health check and fabio will start routing traffic to them. No configuration required. Deployment, upgrading and refactoring has never been easier.
fabio was developed by eBay in Amsterdam and runs some of the largest websites in The Netherlands and Italy. It delivers 15.000 req/sec every day since Sep 2015 without problems.
It integrates with Consul, Vault, Amazon ELB, Amazon API Gateway and more.
It supports SSL, Websockets, dynamic reloading, traffic shaping for "blue/green" deployments, Graphite metrics, WebUI and more.
Watch Kelsey Hightower demo Consul, Nomad, Vault and fabio at HashiConf EU 2016.
The full documentation is on the Wiki.
Getting started
-
Register your service in consul.
Make sure that each instance registers with a unique ServiceID.
-
Register a health check in consul as described here.
Make sure the health check is passing since fabio will only watch services which have a passing health check.
-
Register one
urlprefix-
tag perhost/path
prefix it serves, e.g.:urlprefix-/css
urlprefix-i.com/static
urlprefix-mysite.com/
Make sure the prefix contains at least one slash (
/
). -
Start fabio without a config file (assuming a running consul agent on
localhost:8500
) Watch the log output how fabio picks up the route to your service. Try starting/stopping your service to see how the routing table changes instantly. -
Send all your HTTP traffic to fabio on port
9999
-
Done
License
MIT licensed
Documentation ¶
There is no documentation for this package.
Directories ¶
Path | Synopsis |
---|---|
api
Package api provides the HTTP api.
|
Package api provides the HTTP api. |
ui
Package ui provides the HTML admin console.
|
Package ui provides the HTML admin console. |
demo
|
|
server
Package server provides a sample HTTP/Websocket server which registers itself in consul using one or more url prefixes to demonstrate and test the automatic fabio routing table update.
|
Package server provides a sample HTTP/Websocket server which registers itself in consul using one or more url prefixes to demonstrate and test the automatic fabio routing table update. |
wsclient
Package wsclient implements a simple web socket client which reads lines from stdin and sends them to the websocket url.
|
Package wsclient implements a simple web socket client which reads lines from stdin and sends them to the websocket url. |
file
Package file implements a simple file based registry backend which reads the routes from a file once.
|
Package file implements a simple file based registry backend which reads the routes from a file once. |
static
Package static implements a simple static registry backend which uses statically configured routes.
|
Package static implements a simple static registry backend which uses statically configured routes. |