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_timeout
sets the amount of time a task will wait.backend_wait_limit
sets 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_wait
counts tasks which waited in queue for a connection.backend_wait_fail
counts tasks which waited in queue but failed becausewait_timeout
was 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:
conns
to count waits on idle connectionsremclose
to count idle connections closed by the peertimeout
to count idle connections which timed out in the waiteraction
to 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.