HugeServer Knowledgebase

How to install Varnish 5.1 as a cache server for Apache on Debian 8 and Ubuntu 16

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!

Was this tutorial helpful?

Thank you for your vote.Thank you for your vote.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *

*