- detect application level configuration changes in state diff
- TLS 1.3 is now working properly with OpenSSL
- pass the app id from HTTP protocol to Pipe protocol when in websocket
- more info in logs about socket errors
- more logs and metrics around socket errors
- do not clear the metric update flag too soon
- add logs-debug and logs-trace options to sozuctl to fix build on Exherbo
- send 408 or 504 HTTP errors in case of timeouts
- backend connection time and response time metrics
- test back socket connections before reusing them
- a metric is not sent again if its value did not change
- the backend id is added as matedata to backend metrics
- test if the backend socket is still valid before reusing it
debug release
- do not duplicate backend if we modified a backend's parameters
- fix infinite loop with front socket
- check for existence of the unix logging socket
- access log format: indicate if we got the log from HTTP or HTTPS sessions
- will print the session's state if handling it resulted in an infinite loop
- websocket protocol upgrade
- wildcard matching
- sozuctl commands to query certificates
- more logs and metrics aroundSNI in OpenSSL
- ActivateListener message for TCP proxies
- wildcard certificate mtching with multiple subdomains in configuration
- diff of TCP listener configuration
- activate jemallocator and link time optimization
- sozuctl now uses the buffer size defined in the configuration file
- procinfo dependency
breaking changes:
- the
public_address
field for listeners is now anOption<SocketAddr>
, so it's configuration file format isIP:port
instead of just an IP address - the
AddHttpsFront
message does not use a certificate fingerprint anymore, so HTTPS frontends do not depend on certificate anymore
- unit tests checking for structure size changes
- more error handling in sozuctl
- new
automatic_state_save
option to store the configuration state automatically after changes - event notification system: by sending the
SUBSCRIBE_EVENTS
message, configuration clients can get regular notifications, like messages indicating backend servers are down
- 100 continue behaviour was broken in 0.10 and fixed in 0.10.1
- sticky session cookies are now sent again
- Forwarded headers now indicates correct adresses
breaking change: modules have been moved around in sozu-lib
- sozuctl has a "config check" command
- sozuctl shows the backup flag for backends
- sozuctl shows more info for TCP proxys
- sozuctl displays an address column for backends, instead of IP and port
- new code organization for sozu-lib, with everything related to protocol implementations in src/protocol
- refactoring of the HTTP protocol implementation
- in preparation for HTTP/2, the pool now handles instances of Buffer, not BufferQueue
- work on TCP proxy stability
- reduce allocations in the HTTP parser
- integer underflow when counting backends in the master state
- get the correct client IP in the HTTPS proxys logs
- do not panic when the client disconnects while we're in the Send proxy protocol implementation
- a futures executor for asynchronous tasks in the master process
- custom 503 page per application
- HTTP parser optimizations
- renamed various parts of the code and configuration protocol for more consistency
- upgrade process
- event loop behaviour around abckend connections
- openssl cipher configuration
- circuit breaker
- metrics writing fixes
- event loop fixes
- front socket timeout verification
- configuration state verification optimizations
- rustls and openssl configuration fixes
- separate listeners as a specific configuration option
- configuration file refactoring and simplification
- zombie session check
- more metrics
- circuit breaking in the TCP proxy
- disable debug and trace logs in release builds
- rustls based HTTPS proxy
- ProxyClient trait refactoring
- proxy protocol implementation
- option to send metrics in InfluxDB's tagged format
- PID file
- TCP proxy refactoring
- sozuctl UX
- HTTP -> HTTPS redirection
- documentation
- ReplaceCertifacte message
- remove mio timeouts
- upgrade fixes
- optimizations
- process affinity
- clean system shutdown
- implement 100 continue
- sticky sessions
- build scripts for Fedora, Atchlinux, RPM
- systemd unit file
- metrics
- load balancing algorithms
- retry policy algorithms
- Event loop refactoring
- contribution guidelines
Started implementation:
- TCP proxy
- HTTP proxy
- HTTPS proxy with SNI
- mio based event loop
- configuration diff messages support
- buffer based streaming
- Docker image
- HTTP keep alive
- tested getting configuration events directly from AMQP, was removed
- getting configuration events from a Unix socket
- configuration bootstrap from a TOML file
- logger implementation
- architecture based around master process and worker processes
- control with command line app sozuctl
- command library