β β β ο½ππ»βΊπ«Δπ¬πβ β β β
π¦A fast, modern, zero-conf load balancing HTTP(S) router for deploying microservices:
π¦FEATURES :
>Access Logging - customizable access logs
>Access Control - route specific access control
>Certificate Stores - dynamic certificate stores like file system, HTTP server, Consul and Vault
>Compression - GZIP compression for HTTP responses
>Docker Support - Official Docker image, Registrator and Docker Compose example
>Dynamic Reloading - hot reloading of the routing table without downtime
>Graceful Shutdown - wait until requests have completed before shutting down
>HTTP Header Support - inject some HTTP headers into upstream requests
>HTTPS Upstreams - forward requests to HTTPS upstream servers
>Metrics Support - support for Graphite, StatsD/DataDog and Circonus
>PROXY Protocol Support - support for HA Proxy PROXY protocol for inbound requests (use for Amazon ELB)
>Path Stripping - strip prefix paths from incoming requests
>Server-Sent Events/SSE - support for Server-Sent Events/SSE
>TCP Proxy Support - raw TCP proxy support
>TCP-SNI Proxy Support - forward TLS connections based on hostname without re-encryption
>Traffic Shaping - forward N% of traffic upstream without knowing the number of instances
>Web UI - web ui to examine the current routing table
>Websocket Support - websocket support
πΈπ½π π π°π»π»πΈπ π°π πΈπΎπ½ & π π π½ :
Install from source, binary, Docker or Homebrew.
# go 1.9 or higher is required
1οΈβ£get github.com/fabiolb/fabio (>= go1.9)
2οΈβ£brew install fabio (OSX/macOS stable)
brew install --devel fabio (OSX/macOS devel)
3οΈβ£docker pull fabiolb/fabio (Docker)
https://github.com/fabiolb/fabio/releases (pre-built binaries)
4οΈβ£Register your service in consul.
5οΈβ£Make sure that each instance registers with a unique ServiceID and a service name without spaces.
6οΈβ£Register a health check in consul as described here.
7οΈβ£By default fabio only watches services which have a passing health check, unless overriden with registry.consul.service.status.
8οΈβ£Register one urlprefix- tag per host/path prefix it serves, e.g.:
#HTTP/S examples
urlprefix-/css # path route
urlprefix-i.com/static # host specific path route
urlprefix-mysite.com/ # host specific catch all route
urlprefix-/foo/bar strip=/foo # path stripping (forward '/bar' to upstream)
urlprefix-/foo/bar proto=https # HTTPS upstream
urlprefix-/foo/bar proto=https tlsskipverify=true # HTTPS upstream and self-signed cert
#TCP examples
urlprefix-:3306 proto=tcp # route external port 3306
Make sure the prefix for HTTP routes contains at least one slash (/).
9οΈβ£See the full list of options in the Documentation.
π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. For TCP proxying see TCP proxy.
Done
β git sources
@UndercodeTesting
@UndercodeSecurity
@UndercodeHacking
β β β ο½ππ»βΊπ«Δπ¬πβ β β β
π¦A fast, modern, zero-conf load balancing HTTP(S) router for deploying microservices:
π¦FEATURES :
>Access Logging - customizable access logs
>Access Control - route specific access control
>Certificate Stores - dynamic certificate stores like file system, HTTP server, Consul and Vault
>Compression - GZIP compression for HTTP responses
>Docker Support - Official Docker image, Registrator and Docker Compose example
>Dynamic Reloading - hot reloading of the routing table without downtime
>Graceful Shutdown - wait until requests have completed before shutting down
>HTTP Header Support - inject some HTTP headers into upstream requests
>HTTPS Upstreams - forward requests to HTTPS upstream servers
>Metrics Support - support for Graphite, StatsD/DataDog and Circonus
>PROXY Protocol Support - support for HA Proxy PROXY protocol for inbound requests (use for Amazon ELB)
>Path Stripping - strip prefix paths from incoming requests
>Server-Sent Events/SSE - support for Server-Sent Events/SSE
>TCP Proxy Support - raw TCP proxy support
>TCP-SNI Proxy Support - forward TLS connections based on hostname without re-encryption
>Traffic Shaping - forward N% of traffic upstream without knowing the number of instances
>Web UI - web ui to examine the current routing table
>Websocket Support - websocket support
πΈπ½π π π°π»π»πΈπ π°π πΈπΎπ½ & π π π½ :
Install from source, binary, Docker or Homebrew.
# go 1.9 or higher is required
1οΈβ£get github.com/fabiolb/fabio (>= go1.9)
2οΈβ£brew install fabio (OSX/macOS stable)
brew install --devel fabio (OSX/macOS devel)
3οΈβ£docker pull fabiolb/fabio (Docker)
https://github.com/fabiolb/fabio/releases (pre-built binaries)
4οΈβ£Register your service in consul.
5οΈβ£Make sure that each instance registers with a unique ServiceID and a service name without spaces.
6οΈβ£Register a health check in consul as described here.
7οΈβ£By default fabio only watches services which have a passing health check, unless overriden with registry.consul.service.status.
8οΈβ£Register one urlprefix- tag per host/path prefix it serves, e.g.:
#HTTP/S examples
urlprefix-/css # path route
urlprefix-i.com/static # host specific path route
urlprefix-mysite.com/ # host specific catch all route
urlprefix-/foo/bar strip=/foo # path stripping (forward '/bar' to upstream)
urlprefix-/foo/bar proto=https # HTTPS upstream
urlprefix-/foo/bar proto=https tlsskipverify=true # HTTPS upstream and self-signed cert
#TCP examples
urlprefix-:3306 proto=tcp # route external port 3306
Make sure the prefix for HTTP routes contains at least one slash (/).
9οΈβ£See the full list of options in the Documentation.
π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. For TCP proxying see TCP proxy.
Done
β git sources
@UndercodeTesting
@UndercodeSecurity
@UndercodeHacking
β β β ο½ππ»βΊπ«Δπ¬πβ β β β
GitHub
GitHub - fabiolb/fabio: Consul Load-Balancing made simple
Consul Load-Balancing made simple. Contribute to fabiolb/fabio development by creating an account on GitHub.