These are the highlights of new features or additions to existing features in v6.0.x and 6.1.x. For the complete list of all changes see the JIRA Release Notes.
General Changes
- Some changes have been made to the HostDB data structures. The defaults configurations that ships with ATS v6.x still works, but if you have made changes to either of these configurations, you might have to modify them. Specifically, you might have to either reduce the number of entries supported, or, increase the storage size.
CONFIG proxy.config.hostdb.size INT 120000 CONFIG proxy.config.hostdb.storage_size INT 45375488
- XML statistics can now be replaced with a Lua implementation instead. See proxy.config.stats.enable_lua below.
- We have added a multi origin hierarchy to parent selection which lets you treat parent proxies as if there were origin servers, or origin servers as if they were parent proxies. See the "parent_is_proxy" option in parent.config.
- Parent selection now also supports failover retries, where you can retry requests against a different parent in case the parent is unavailable or does not have the desired content. See the "parent_retry" option in parent.config.
- There are some better instrumentation for memory debugging, including running with Address Sanitizer, and OpenSSL.
Jira: TS-4207, TS-4115, TS-4287, TS-4197, TS-4212, TS-4297, TS-3863
New configuration options
- proxy.config.http.origin_max_connections_queue limits the number of requests to be queued when the
proxy.config.http.origin_max_connections
is reached. - Two new timeouts are available for WebSockets: proxy.config.websocket.no_activity_timeout and proxy.config.websocket.active_timeout.
- The congestion control algorithm used is now configurable for both incoming, and outbound connections, via proxy.config.net.tcp_congestion_control_in and proxy.config.net.tcp_congestion_control_out.
- In preparation for the new Lua metrics module in v7.0.0, you can enable this feature in v6.2.x with proxy.config.stats.enable_lua.
- An experimental implementation of H2 streams priorities can be enabled with proxy.config.http2.stream_priority_enabled.
- We now provide better control over various H2 (HTTP/2) features, including proxy.config.http2.min_concurrent_streams_in, proxy.config.http2.max_active_streams_in and proxy.config.http2.active_timeout_in.
- proxy.config.http.transaction_active_timeout_in is now also overridable.
Jira: TS-4341, TS-3922, TS-4064, TS-4099, TS-3535, TS-4087, TS-4162,
TLS and HTTP/2 (aka H2)
We continue to improve our TLS (HTTPS) features and support. Noteworthy in 6.2.x is:
- HTTP/2 is now much more feature rich, with a slew of bug fixes, configuration options, and performance optimizations. Try it out!
- In particular, we now also have priority support for H2, but it's maybe not production ready for all use cases.
- SPDY has been marked as deprecated, and will be removed for v7.0.0.
Jira: TS-4087, TS-3535, TS-3485, TS-4323, TS-4359, TS-4092
New plugins
- There's a new CPP API plugin for converting image formats to the webp format.
- There's a collapsed forwarding plugin in the experimental tree, this can help mitigate thundering herd issues in some cases.
- The beginning of an ACME (LetsEncrypt) plugin is in the source tree, but it needs more work to be complete. Volunteers are welcome!
Jira: TS-4095, TS-4243, TS-4320
Plugin Improvements
The following plugins have new features and improvements.
header_rewrite
- We have a new operator for time based conditions, NOW().
- There's a new GeoIP operator, GEO().
cachekey
- The old cache url plugin is now deprecated, in favor of our new, more complete cachekey plugin. Make sure to migrate to it if you use the old plugin!
- We have added support for URI and URI path capture and replacements.
gzip
- The gzip plugin can now function as a remap plugin, simplifying and strengthening configuration management. You can now selectively and efficiently enable gzip support easily per remap rule.
- The gzip plugin has also gone through some major rewrites, improving stability and performance.
geoip_acl
- We now support IPv6 for this plugin
Jira: TS-4284