Releases: yyyar/gobetween
0.8.0
This release brings some new features alongside with various improvements.
Windows/386 build is dropped due to incompatibility with some of the dependencies.
New Features
- 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
Added
- Multistage docker build
- Build as snap package
- Latest letsencrypt changes
Removed
- Windows/386 build
Fixed
- 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
0.7.0
This release brings some features and bugfiex
New Features
- Prometheus Metrics Endpoint
- Improved UDP performance
- Added profiler (optional, disabled by default)
- Added probe healthcheck with different strategies
Fixed
0.6.1
This release brings only bugfixes
Fixed
- 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.
0.6.0
This release brings a bunch of improvements and bug-fixes, and one major feature:
Letsencrypt HTTP challenge support.
New Features
- ACME (Letsencrypt) http challenge support (sni challenge is disabled due to security considerations)
Added
- 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
- 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
Changed
- Removed not necessary dependency on libacl1-dev
- Replaced missing dependencies
- Removed lxdhelpers (PR #113 by Joe Topjian)
0.5.0
This release brings several new features and various fixes and improvements
New Features
- ACME protocol support for TLS server
- PROXY protocol v1 support (PR #101 by Nico Schieder)
- LXD Discovery (PR #76 by Joe Topjian)
Added
- 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
Fixed
- 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
Changed
- Optimizing Docker image (now FROM stratch)
0.4.0
This release brings many new features and improvemets, as well as bugfixes.
Major things are UDP support, TLS termination, TLS proxy, SNI-aware balancing.
New Features
- 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)
Added
- Possibility to enable CORS for REST API
Fixed
- 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
Changed
- Docker discovery now can have empty TLS certificates.
- Migrated to golang 1.8. Now it's minimal requirement for the build.
0.3.0
This release brings several new features and improvemets, as well as bugfixes. Major things are
integrations with Consul, more flexible command-line options and Access control module.
New Features
- 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
Added
- 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
Fixed
- Creating server with the same name via rest api causes api to freeze
- Runtime error when no [default] section is present in config
Changed
- Replaced big.Int with uint64 for simplicity and performance reasons.
0.2.0
This release brings several big features such as full-functional REST API and Stats, as well
as many bugfixes and improvements. All changes are backward-compatible with 0.1.0.
New Features
- 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)
Added
- 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
Fixes
- 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)