To install Varnish Virtual Registry on a RHEL-based system, you can install the varnish-supervisor RPM package.
curl -s https://packagecloud.io/install/repositories/varnishplus/60-enterprise/script.rpm.sh | sudo bash
sudo yum -y install varnish-supervisor
To verify successful installation, run:
varnish-supervisor --version
On RHEL-based systems, services should not be started automatically during installation, so you have to enable it explicitly:
sudo systemctl enable --now varnish-supervisor
Check that systemd service started successfully:
systemctl status varnish-supervisor
The package installs a default configuration file in /etc/varnish-supervisor/default.yaml. You can either edit this file directly (it won’t be replaced when upgrading the package), or change the --config argument to a different path:
sudo systemctl edit --full varnish-supervisor
To have the changes take effect, restart the service:
sudo systemctl restart varnish-supervisor
For more information about Varnish Virtual Registry configuration, take a look at the configuration reference.
Varnish Virtual Registry has a health-check endpoint at /healthz, and will respond with a 200 OK to all requests on that path regardless of Host.
curl http://localhost/healthz -I
HTTP/1.1 200 OK
Date: Wed, 29 Oct 2025 16:17:17 GMT
Content-Length: 0
Accept-Ranges: bytes
Connection: keep-alive
The default configuration has the Virtual Registry listening for HTTP traffic on port 80. If you have changed this to a different port, make sure to curl the right port and protocol.
The varnish-supervisor package installs a Varnish module, /usr/lib/varnish-plus/vmods/libvmod_vizier.so, which the generated VCL imports. A Varnish module is bound to the exact Varnish Enterprise build it was compiled against, so the two packages have to be upgraded together:
sudo yum -y update varnish-plus varnish-supervisor
Upgrading varnish-plus on its own leaves Varnish unable to load its VCL.
Those versions shipped systemd scriptlets that never ran. The scriptlets are fixed as of 0.18.0, but the ones being replaced still come from the old package, and they fail the transaction and leave both versions recorded as installed.
Run the upgrade a second time, drop the stale record, and restart the service:
sudo yum -y update varnish-supervisor
sudo rpm -e --noscripts varnish-supervisor-<old version>
sudo systemctl restart varnish-supervisor