HugeServer Knowledgebase

How to install Varnish 5.1 as a cache server for Apache on CentOS 7

Introduction

Varnish is an HTTP accelerator and a useful tool to speed up web servers which serve very high traffic websites or web apps. We are going to install Varnish as a cache server for Apache because unlike Nginx, Apache doesn’t have any static or dynamic caching ability or module. Varnish is one of the most popular cache server applications, it’s very easy to install and configure and has both static and dynamic caching ability.

We are assuming that you have root permission, otherwise, you may start commands with “sudo”.

Install and configure Apache

Install Apache 2 with the command below:

yum install httpd

When the installation is finished, open the Apache configuration with your favorite text editor:

nano /etc/httpd/conf/httpd.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 httpd

systemctl restart httpd

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:

yum install autoconf automake libedit-devel libtool ncurses-devel pcre-devel pkgconfig 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
ldconfig

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:

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 *

*