Changes in Varnish 7.6¶
For information about updating your current Varnish deployment to the new version, see Upgrading to Varnish 7.6.
A more detailed and technical account of changes in Varnish, with links to issues that have been fixed and pull requests that have been merged, may be found in the change log.
Changes applying to most varnish-cache programs¶
The environment variable VARNISH_DEFAULT_N now provides the default “varnish
name” / “workdir” as otherwise specified by he -n argument to varnishd
and varnish* utilities except varnishtest.
Programs attaching to varnishd’s shared memory are now performing more
precise status checks of the varnishd process. They should in particular
better detect restarts of the process. This comes with signal-based liveness
checks that can be disabled when VSM_NOPID is exported to the environment
of utilities like varnishlog, varnishstat or varnishncsa.
varnishd¶
A new linux jail has been added (configured via the -j argument) which is
now the default on Linux. For now, it is almost identical to the unix jail
with one Warning if tmpfs is not used added.
The port of a listen_endpoint given with the -a argument to varnishd
can now also be a numerical port range like 80-89, besides the existing
options of port number (e.g. 80) and service name (e.g. http). With a
port range, Varnish will accept connections on all ports within the range.
Backend connection queuing¶
A feature has been added to instruct backend tasks to queue if the backend has
reached its max_connections. This allows tasks to wait for a connection to
become available rather than immediately fail. This feature must be enabled
through new global parameters or individual backend properties:
backend_wait_timeoutsets the amount of time a task will wait.backend_wait_limitsets the maximum number of tasks that can wait.
These parameters can also be set for individual backends using the
wait_timeout and wait_limit properties.
Tasks waiting on a backend going sick (either explicitly via the
backend.set_health command or implicitly through the probe) fail
immediately.
Global VSC counters have been added under MAIN:
backend_waitcounts tasks which waited in queue for a connection.backend_wait_failcounts tasks which waited in queue but failed becausewait_timeoutwas reached or the backend went sick.
Parameters¶
The backend_wait_timeout and backend_wait_limit parameters have been
added, see Backend connection queuing above for details.
The size of the buffer to hold panic messages is now tunable through the new
panic_buffer parameter.
Changes to VCL¶
The wait_timeout and wait_limit backend properties have been added, see
Backend connection queuing above for details.
For backends using the .via attribute to connect through a proxy, the
connect_timeout, first_byte_timeout and between_bytes_timeout
attributes are now inherited from proxy unless explicitly given.
varnishlog¶
Additional SessError VSL events are now generated for various HTTP/2
protocol errors. Some HTTP/2 log events have been changed from Debug and
Error to SessError.
varnishstat¶
VSC counters for waiters have been added:
connsto count waits on idle connectionsremcloseto count idle connections closed by the peertimeoutto count idle connections which timed out in the waiteractionto count idle connections which resulted in a read
These can be found under WAITER.<poolname>..
The MAIN.backend_wait and MAIN.backend_wait_fail counters have been
added, see Backend connection queuing above for details.
varnishtest¶
varnishtest now supports the shutdown command corresponding to the
shutdown(2) standard C library call.