- Transparent mode for UDP connections #218
- Environment variables substitution into config (disabled by default) #201
- Combined priority + weight balancing, support of weight = 0 and ignore negative weight #204
- Support of Consul ACL tokens #195
- Pidfile support #190
- TLS probe healthcheck #173
- IPV6 support for SRV discovery #222
- Multistage docker build
- Build as snap package
- Latest letsencrypt changes
- Windows/386 build
- Panic when removing UDP server with enabled access control #215
- Servers deleted via API have scheduler still running #140
- Iphash random selection of backends for the same client ip #229
- Fixed systemd unit #190
- JSON logs format
- High cpu load by UDP server in max_requests=1 mode (fire and forget) by using connection pool #290
- Logging of metric server error #277
- Prometheus Metrics Endpoint
- Improved UDP performance
- Added profiler (otpional, disabled by default)
- Added probe healthceck with different strategies
- CGO Requirement for DNS has been replaced with netgo #125
- UDP server was not performing access checks
- Empty
srv_dns_protocol
messed up failpolicy value #193 - Fixed missing acme (letsencrypt) tls config during server start #214
This release brings only bugfixes
- No binaries were generated for some of the platforms during make dist
- Regression of roundrobin balancer (it was acting on randomized list of backends)
- Docker image was not working due to missing dynamic library dependencies
- Gobetween became stuck in very rare cases during reading hostname info (sni) from new tls connections.
This release brings some improvements and bugfixes.
- ACME (Letsencrypt) http challenge support (sni challenge is disabled due to security considerations)
- iphash1 algorithm (consistent on backend removal)
- More strict check of UDP server configuration
- /ping public endpoint for healthcheck (PR #127 by Mike Schroeder)
- Support for using the Host Address (PR #123 by David Beck)
- Mentioned gowebhello as an alternative webserver (PR #137 by Shantanu Gadgil)
- Fixed iphash algorithm. It was not working properly at all
- Fixed UDP 'session' tracking problems
- Fixed active connections underflow on backend removed and added back, but connections remain established
- Removed not necessary dependency on libacl1-dev
- Replaced missing dependencies
- Removed lxdhelpers (PR #113 by Joe Topjian)
This release brings several new features and various fixes and improvements.
- ACME (Letsencrypt) protocol support for TLS server
- PROXY protocol v1 support (PR #101 by Nico Schieder)
- LXD Discovery (PR #76 by Joe Topjian)
- Added more info to server and sni logging errors
- Version number first line to output on startup
- Add sni value to 'not-matching' SNI error message
- Version flags (--version and -v)
- Implemented max requests and responses parameters in UDP
- Dns discovery when A records are not presented in additional section of SRV response
- Sni middleware to work fine with default unexpected hostname strategy
- Propagating sni backend value in scheduler after discovery
- Optimizing Docker image (now FROM scratch)
This release brings many new features and improvements, as well as bugfixes. Major things are UDP support, TLS termination, TLS proxy, SNI-aware balancing.
- UDP protocol support
- TLS termination
- TLS proxy (connect to backends with TLS and configurable certs)
- SNI-aware balancing (routing based on hostname from TLS Server Name Indication record)
- Possibility to enable CORS for REST API
- Messed up
client_idle_timeout
andbackend_idle_timeout
- Bugs in balancers: iphash, roundrobin, weight - now work more accurately
- Goroutine/memory leak caused by consul discovery not reusing http client
- Docker discovery now can have empty TLS certificates.
- Migrated to golang 1.8. Now it's minimal requirement for the build.
This release brings several new features and improvements, as well as bugfixes. Major things are integrations with Consul, more flexible command-line options and Access control module.
- Consul Discovery
- Ability to load config not only from file, but also from URL and Consul key-value storage on startup
- More powerful command-line interface
- Leastbandwidth balancing strategy
- Allow passing parameters as GOBETWEEN env variable instead of args
- Possibility to specify format in /dump endpoint (toml or json)
- Refused connections counters for backends
- TCP mode for DNS SRV Discovery
- Creating server with the same name via rest api causes api to freeze
- Runtime error when no [default] section is present in config
- Replaced big.Int with uint64 for simplicity and performance reasons.
This release brings several big features such as full-functional REST API and Stats, as well as may bugfixes and improvements. All changes are backward-compatible with 0.1.0.
- REST API implementation (info, servers list/create/remove, stats, config dump).
- Implemented gathering stats for servers and backends (rx/tx, rx/tx per second, connections count, etc)
- Set GOMAXPROCS to cpu count automatically if no env var is present
- Added TLS support for Docker discovery
- Added
docker_container_host_env_var
property to Docker discovery - Allow any type of value (int or string) in port in JSON discovery
- Make healthchecks optional
- Fixed panic runtime error exec discovery when
exec_command
is not valid path and timeout=0 - Fixed roundrobin balance strategy
- Fixed how SRV discovery handler large UDP responses; Fixed sometimes missed port.
- Fixed parsing backend on windows (with \r newlines)
- Initial project implementation (by @yyyar and @kikom).