How to Install Varnish with Apache on Ubuntu 22.04

Everything Linux, A.I, IT News, DataOps, Open Source and more delivered right to you.
Subscribe
"The best Linux newsletter on the web"

Hello, friends. We already know that Apache is one of the best web servers out there. But there are always tools to improve it and to increase its power. So, today, you will learn how to install Varnish with Apache on Ubuntu 22.04.

According to the tool’s website

Varnish Cache is a web application accelerator also known as a caching HTTP reverse proxy. You install it in front of any server that speaks HTTP and configure it to cache the contents.

This makes it a very popular tool for many sysadmins who see it as a good way to speed up the web server and its response times.

Fortunately, it is available for Linux, so we can install it without too much trouble.

Let’s go.

How to install Varnish with Apache on Ubuntu 22.04

Install Apache on Ubuntu 22.04

The first step is to install Apache on Ubuntu 22.04. To achieve this, open a terminal and update the system first.

sudo apt update
sudo apt upgrade

Then, you can install it from the official repositories, which is the most recommended method.

sudo apt install apache2

Now you will have to configure it a bit for varnish. In this case, we just need to change the port from 80 to 8080 or any other.

To achieve this, edit the Apache port configuration file

sudo nano /etc/apache2/ports.conf

And look for the line

Listen 80

To change it for this one

Listen 8080
Configuring the new Apache port
Configuring the new Apache port

Remember that it can be another port. Now, save the file and exit the editor.

Now do the same but the configuration file of the VirtualHost

sudo nano /etc/apache2/sites-available/000-default.conf

Replace

<VirtualHost *:80>

By

<VirtualHost *:8080>
Configuring the Apache VirtualHost for Varnish
Configuring the Apache VirtualHost for Varnish

Apply the changes by restarting the service

sudo systemctl restart apache2

Installing the latest stable version of Varnish

To install the latest stable version of Varnish, you have to add an external repository and set it to high priority.

First, install some necessary packages

sudo apt install debian-archive-keyring curl gnupg apt-transport-https

Then download and add the GPG key from the Varnish repository

curl -fsSL https://packagecloud.io/varnishcache/varnish70/gpgkey | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/varnish.gpg

Next, add the repository as such to the list of package sources.

sudo nano /etc/apt/sources.list.d/varnishcache_varnish70.list

And in that file, add the following

deb https://packagecloud.io/varnishcache/varnish70/ubuntu/ focal main
deb-src https://packagecloud.io/varnishcache/varnish70/ubuntu/ focal main

The next step is to change the priority of the repository. To achieve this, create a special configuration for this repository.

sudo nano /etc/apt/preferences.d/varnish

And add the following

Package: varnish
Pin: origin packagecloud.io
Pin-Priority: 900

Save the changes and close the editor. Now refresh the repositories.

sudo apt update

Next, install Varnish

sudo apt install varnish
Install Varnish on Ubuntu 22.04
Install Varnish on Ubuntu 22.04

Configuring Varnish with Apache on Ubuntu 22.04

Now the next step is to configure Varnish to work with Apache. This can be done, by modifying its configuration file.

sudo nano /etc/varnish/default.vcl

Now modify it so that you see something like this

backend default {
    .host = "127.0.0.1";
    .port = "8080";
}
Configuring Varnish with Apache on Ubuntu 22.04
Configuring Varnish with Apache on Ubuntu 22.04

Save the changes and close the editor.

To make this the default, you have to create a new service file. First the folder:

sudo mkdir /etc/systemd/system/varnish.service.d

And then the new service file

sudo nano /etc/systemd/system/varnish.service.d/customport.conf

Add the following

[Service] 
ExecStart=
ExecStart=/usr/sbin/varnishd -a :80 -a localhost:8443,PROXY -p feature=+http2 -f /etc/varnish/default.vcl -s malloc,256m

Similarly, save the changes and close the editor.

To apply the changes run

sudo systemctl daemon-reload

And restart Varnish

sudo systemctl restart varnish

Now check the status of the service to see if everything is OK

systemctl status varnish
Varnish service status
Varnish service status

As you can see, everything is fine.

To check if everything is ok, then you can use curl and ask for information from the web server

curl -I http://localhost/
Varnish With Apache working on Ubuntu 22.04
Varnish With Apache working on Ubuntu 22.04

Everything was successful.

Conclusion

Varnish is a vital cache project for Apache and web servers. It is very fascinating, and now you know how to configure it with Apache in Ubuntu 22.04.

Everything Linux, A.I, IT News, DataOps, Open Source and more delivered right to you.
Subscribe
"The best Linux newsletter on the web"
Angelo
Angelo
I am Angelo. A systems engineer passionate about Linux and all open-source software. Although here I'm just another member of the family.

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Latest articles

Join us on Facebook