fabio

command module
v1.1.6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 12, 2016 License: MIT Imports: 26 Imported by: 0

README

./fabio

Current stable version: 1.1.6
Next version: 1.2rc2

Build Status License MIT

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

  1. Register your service in consul.

    Make sure that each instance registers with a unique ServiceID.

  2. 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.

  3. Register one urlprefix- tag per host/path prefix it serves, e.g.:

    • urlprefix-/css
    • urlprefix-i.com/static
    • urlprefix-mysite.com/

    Make sure the prefix contains at least one slash (/).

  4. 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.

  5. Send all your HTTP traffic to fabio on port 9999

  6. Done

License

MIT licensed

Documentation

The Go Gopher

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.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL