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 http://repo.varnish-cache.org/debian/GPG-key.txt | apt-key add -
# echo "deb http://repo.varnish-cache.org/debian/ 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 = "127.0.0.1";
 .port = "8080";
}

Varnish config is completed. Now configure your Apache or Nginx or Web application server.

Test Varnish

Now test Varnish cache is working with your webserver. Here my apache server hostname is server.unixmen.com. So i entered the following command to verify that varnish is working.

# curl -I server.unixmen.com

Sample output:

HTTP/1.1 200 OK
Server: Apache/2.2.22 (Debian)
Last-Modified: Tue, 23 Jul 2013 06:10:07 GMT
ETag: "bfbbf-b1-4e227a5086e47"
Vary: Accept-Encoding
Content-Type: text/html
Date: Sat, 24 Aug 2013 08:46:32 GMT
X-Varnish: 2122861446
Age: 0
Via: 1.1 varnish
Connection: keep-alive

As you see in the above output, varnish cache is working well with my apache server.

You can see the Varnish Cache status with following command.

# varnishstat

Sample output:

0+00:19:55
Hitrate ratio:        1        1        1
Hitrate avg:     0.2500   0.2500   0.2500

3         0.00         0.00 client_conn – Client connections accepted
4         0.00         0.00 client_req – Client requests received
1         0.00         0.00 cache_hit – Cache hits
3         0.00         0.00 cache_miss – Cache misses
2         0.00         0.00 backend_conn – Backend conn. success
1         0.00         0.00 backend_reuse – Backend conn. reuses
1         0.00         0.00 backend_toolate – Backend conn. was closed
3         0.00         0.00 backend_recycle – Backend conn. recycles
3         0.00         0.00 fetch_length – Fetch with Length
6          .            .   n_sess_mem – N struct sess_mem
2          .            .   n_waitinglist – N struct waitinglist
1          .            .   n_vbc – N struct vbc
10          .            .   n_wrk – N worker threads
12         0.00         0.01 n_wrk_create – N worker threads created
1          .            .   n_backend – N backends
3          .            .   n_expired – N expired objects
3         0.00         0.00 n_objwrite – Objects sent with write
3         0.00         0.00 s_sess – Total Sessions
4         0.00         0.00 s_req – Total Requests
3         0.00         0.00 s_fetch – Total fetch
1258         0.00         1.05 s_hdrbytes – Total header bytes
626         0.00         0.52 s_bodybytes – Total body bytes
1         0.00         0.00 sess_closed – Session Closed
4         0.00         0.00 sess_linger – Session Linger
3         0.00         0.00 sess_herd – Session herd
1094         0.00         0.92 shm_records – SHM records
843         0.00         0.71 shm_writes – SHM writes
3         0.00         0.00 backend_req – Backend requests made
1         0.00         0.00 n_vcl – N vcl total
1         0.00         0.00 n_vcl_avail – N vcl available
1          .            .   n_ban – N total active bans
1          .            .   n_ban_gone – N total gone bans
1         0.00         0.00 n_ban_add – N new bans added
4         0.00         0.00 hcb_nolock – HCB Lookups without lock
3         0.00         0.00 hcb_lock – HCB Lookups with lock
3         0.00         0.00 hcb_insert – HCB Inserts
1195         0.99         1.00 uptime – Client uptime
3         0.00         0.00 n_gunzip – Gunzip operations

Share

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.