:cloud: Modern & minimalistic load balancer for the Сloud era
gobetween - modern & minimalistic load balancer and reverse-proxy for the :cloud: Cloud era.
Current status: Maintenance mode, accepting PRs. Currently in use in several highly loaded production environments.
Clear & Flexible Configuration with TOML or JSON
Balancing Strategies (with SNI support)
Integrates seamlessly with Docker and with any custom system (thanks to Exec discovery and healthchecks)
Single binary distribution
gobetween --help
for full help on all available commands and options.$ git clone [email protected]:yyyar/gobetween.git
$ make
$ make run
Run several web servers for tests in different terminals:
$ python -m SimpleHTTPServer 8000
$ python -m SimpleHTTPServer 8001
Instead of Python's internal HTTP module, you can also use a single binary (Go based) webserver like: https://github.com/udhos/gowebhello
gowebhello has support for SSL sertificates as well (HTTPS mode), in case you want to do quick demos of the TLS+SNI capabilities of gobetween.
Put localhost:8000
and localhost:8001
to static_list
of static discovery in config file, then try it:
$ gobetween -c gobetween.toml
$ curl http://localhost:3000
Enable profiler and debug issues you encounter
[profiler]
enabled = true # false | true
bind = ":6060" # "host:port"
It's Fast! See Performance Testing
It's a play on words: gobetween ("go between").
Also, it's written in Go, and it's a proxy so it's something that stays between 2 parties :smile:
MIT. See LICENSE file for more details.
Logo by Max Demchenko