Did anybody here use Varnish cache?

I did not find any mentions of unixy's plugin in that article. So the article does not suggest that you use that plugin. What did I miss or misread in your message?
 
Its relatively simple, pop over to varnish add the repository and install

change your apache port to something else in a custom template say 8080
get directadmin to rewrite all of the httpd.conf's

change /etc/sysconfig/varnish, so varnish is on port 80, and change the name of the default.vcl, so updates do not override yours.

Run a script similar to this to create your backend, you could polish this script, but its simple and works.

--- Start Of Script ---

#!/bin/bash

# Varnish VCL Creator
# (C) 2012 UnixGuru Consulting
# Author: Andrew Shaw

VARNISH_VCL="/etc/varnish/custom.vcl"
IPFILE="/usr/local/directadmin/data/admin/ip.list"
BEPORT="8080"

echo "#Default Backend" > ${VARNISH_VCL}

echo "backend default {" >> ${VARNISH_VCL}
echo " .host = \"127.0.0.1\";" >> ${VARNISH_VCL}
echo " .port = \"${BEPORT}\";" >> ${VARNISH_VCL}
echo "}" >> ${VARNISH_VCL}
echo >> ${VARNISH_VCL}

#echo "#Remove Accept-Encoding Header" >> ${VARNISH_VCL}
#echo "unset req.http.Accept-Encoding;" >> ${VARNISH_VCL}
#echo >> ${VARNISH_VCL}

echo "#IP BackEnds" >> ${VARNISH_VCL}
echo >> ${VARNISH_VCL}

for i in $(cat ${IPFILE})
do

BE_NAME=$(echo "B${i}" | sed 's/\./\_/g')

echo "backend ${BE_NAME} {" >> ${VARNISH_VCL}
echo " .host = \"${i}\";" >> ${VARNISH_VCL}
echo " .port = \"${BEPORT}\";" >> ${VARNISH_VCL}
echo "}" >> ${VARNISH_VCL}
echo >> ${VARNISH_VCL}

done

echo "#IP ACLs" >> ${VARNISH_VCL}
echo >> ${VARNISH_VCL}

for i in $(cat ${IPFILE})
do

ACL_NAME=$(echo "A${i}" | sed 's/\./\_/g')

echo "acl ${ACL_NAME} {" >> ${VARNISH_VCL}
echo " \"${i}\";" >> ${VARNISH_VCL}
echo "}" >> ${VARNISH_VCL}
echo >> ${VARNISH_VCL}

done

echo "# Map the ACL IPs to the Backend Proxies" >> ${VARNISH_VCL}
echo >> ${VARNISH_VCL}

echo "sub vcl_recv {" >> ${VARNISH_VCL}
echo >> ${VARNISH_VCL}

for i in $(cat ${IPFILE})
do

ACL_NAME=$(echo "A${i}" | sed 's/\./\_/g')
BE_NAME=$(echo "B${i}" | sed 's/\./\_/g')

echo " if (server.ip ~ ${ACL_NAME}) {" >> ${VARNISH_VCL}
echo " set req.backend = ${BE_NAME};" >> ${VARNISH_VCL}
echo " }" >> ${VARNISH_VCL}
echo >> ${VARNISH_VCL}

done

echo "}" >> ${VARNISH_VCL}

--- End Of Script ---

restart varnish, restart apache and you are sorted.

Because this uses IPs and not domains in the vcl, it does not need updating, unless you add or remove ips, makes it easier for da.
 
You can find answer of your question on live website, if you won't find than surely need to ask to Google ;)
 
Back
Top