gobetween - modern & minimalistic load balancer and reverse-proxy for the ☁️ Cloud era.
-
https://github.com/yyyar/gobetween
Current status: Under active development. Currently in use in several highly loaded production environments.
Written in Go and some interesting features, like health checks and more.
Fast L4 Load Balancing TCP - with optional The PROXY Protocol support TLS - TLS Termination + ACME & TLS Proxy UDP - with optional virtual sessions and transparent mode Clear & Flexible Configuration with TOML or JSON File - read configuration from the file URL - query URL by HTTP and get configuration from the response body Consul - query Consul key-value storage API for configuration Management REST API System Information - general server info Configuration - dump current config Servers - list, create & delete Stats & Metrics - for servers and backends including rx/tx, status, active connections & etc. Discovery Static - hardcode backends list in the config file Docker - query backends from Docker / Swarm API filtered by label Exec - execute an arbitrary program and get backends from its stdout JSON - query arbitrary http url and pick backends from response json (of any structure) Plaintext - query arbitrary http and parse backends from response text with customized regexp SRV - query DNS server and get backends from SRV records Consul - query Consul Services API for backends LXD - query backends from LXD Healthchecks Ping - simple TCP ping healthcheck Exec - execute arbitrary program passing host & port as options, and read healthcheck status from the stdout Probe - send specific bytes to backend (udp, tcp or tls) and expect a correct answer (bytes or regexp) Balancing Strategies (with SNI support) Weight - select backend from pool based relative weights of backends Roundrobin - simple elect backend from pool in circular order Iphash - route client to the same backend based on client ip hash Iphash1 - same as iphash but backend removal consistent (clients remain connecting to the same backend, even if some other backends down) Leastconn - select backend with least active connections Leastbandwidth - backends with least bandwidth Integrates seamlessly with Docker and with any custom system (thanks to Exec discovery and healthchecks) Single binary distribution
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login