Install And Configure Varnish Cache With Apache On Debian 7

Varnish Cache is a web accelerator, sometimes referred to as a HTTP accelerator or a reverse HTTP proxy, that will significantly enhance your web performance.

Varnish speeds up a website by storing a copy of the page served by the web server the first time a user visits that page. The next time a user requests the same page, Varnish will serve the copy instead of requesting the page from the web server.

This means that your web server needs to handle less traffic and your website’s performance and scalability go through the roof. Varnish cache will increase the delivery of your web content by 80 % or more, depending on your architecture.

Install Varnish Cache On Debian 7

Normally Varnish Cache is available on Debian default repositories. But i suggest you to use Varnish Cache repositories to get latest version of Varnish Cache.

Run the following commands as root user to install Varnish Cache.

# curl | apt-key add -
# echo "deb wheezy varnish-3.0" >> /etc/apt/sources.list
# apt-get update 
# apt-get install varnish

Configure Varnish

Open up the file ‘/etc/default/varnish’ in any editor.

# nano /etc/default/varnish

Find the section called ‘Alternative -2’ and modify as shown below.

## Alternative 2, Configuration with VCL
# Listen on port 6081, administration on localhost:6082, and forward to
# one content server selected by the vcl file, based on the request.  Use a 1GB
# fixed-size cache file.
DAEMON_OPTS="-a :80 \
             -T localhost:6082 \
             -f /etc/varnish/default.vcl \
             -S /etc/varnish/secret \
             -s malloc,256m"

Save and exit the file.

Now we have to tell to varnish where to look the webserver content.

Open the file ‘/etc/varnish/default.vcl’.

# nano /etc/varnish/default.vcl

and make sure that you have the following lines in the file as shown below.

backend default {
    .host = "";
    .port = "8080";

Configure Apache

We have told varnish that apache will be running on port 8080. But we haven’t change the port to 8080 and still apache listens on port 80.

To change the port, edit up the following file.

# nano /etc/apache2/ports.conf

Find the following lines,

NameVirtualHost *:80
Listen 80

Change them to look like below.


Save and close the file.

Also edit the file ‘/etc/apache2/sites-available/default’,

# nano /etc/apache2/sites-available/default

Change the port to 8080.

<VirtualHost *:8080>
        ServerAdmin webmaster@localhost

Save and exit file. Restart apache and varnish services to take effect the saved changes.

# /etc/init.d/apache2 restart 
# /etc/init.d/varnish restart

And you’re done. It should be working.



Leave a Reply