Introduction
Varnish is one of the best Cache server applications around that can accelerate high traffic websites, Varnish has both dynamic and static caching ability so it can minimize requests to the web server and save much time and process. in this tutorial, we are going to install Varnish as a cache server for Apache because unlike some of other web servers, Apache doesn’t have any dynamic or static caching ability inside.
We are assuming that you have root permission, otherwise, you may start commands with “sudo”.
Install and configure Apache
You can install Apache2 using “apt” with the command below:
apt-get install apache2
After the installation is finished, we have to change the Apache listening port to 8080, so open the port configuration file with your text editor:
nano /etc/apache2/ports.conf
Now you have to change the Apache listening port to “8080”, find the line that starts with “Listen” and change it like below:
Listen 8080
Save and exit.
Enable and restart your Apache service to take effect:
systemctl enable apache2
systemctl restart apache2
Install Varnish
We are going to install the latest version of varnish which is 5.1 at the time of writing.
In order to install the latest version, we have to download the source and compile it.
You have to install some dependencies to compile the Varnish:
apt-get install make automake autotools-dev libedit-dev libjemalloc-dev libncurses-dev libpcre3-dev libtool pkg-config python-docutils python-sphinx
Now you can download the Varnish from the repository:
wget http://repo.varnish-cache.org/source/varnish-5.1.2.tar.gz
Extract the “tar.gz” file with the command below:
tar xvzf varnish-5.1.2.tar.gz
Switch to the extracted directory and start compiling:
cd varnish-5.1.2
Run the following commands one by one:
sh autogen.sh
sh configure
make
make install
Create Varnish 5.1 Service
In this section, we are going to create a “systemd” service for Varnish but first, we have to create a directory in order to store default configuration of Varnish
Make a directory named “varnish” in your “etc”:
cd
mkdir /etc/varnish
Now you can paste the default configuration from the source in the above directory with the command below:
mv varnish-5.1.2/etc/example.vcl /etc/varnish/default.vcl
Then create a service file with your text editor in the following path:
nano /etc/systemd/system/varnish.service
Paste the following script in the file then save and exit:
[Unit]
Description=Varnish HTTP accelerator
[Service]
Type=forking
LimitNOFILE=131072
LimitMEMLOCK=82000
ExecStartPre=/usr/local/sbin/varnishd -f /etc/varnish/default.vcl
ExecStart=/usr/local/sbin/varnishd -a :80 -b localhost:8080
ExecReload=/usr/share/varnish/reload-vcl
[Install]
WantedBy=multi-user.target
Run the following command to take effect:
systemctl daemon-reload
Finally, your Varnish 5.1 has a “systemd” service and you can control it with the following commands:
systemctl enable varnish
systemctl start varnish
systemctl status varnish
systemctl restart varnish
Testing Varnish
To make sure that your Varnish is working properly you can use the “curl” command.
First, install “Curl”:
apt-get install curl
curl -I localhost
Search for the following lines in the output:
X-Varnish: 2
Via: 1.1 varnish (Varnish/5.1)
You can visit Varnish official website for more information and news!