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