Skip to content

Instantly share code, notes, and snippets.

@jjoergensen
Forked from mojodna/default.vcl
Last active October 15, 2015 12:28
Show Gist options
  • Save jjoergensen/6da6256228a25e27a281 to your computer and use it in GitHub Desktop.
Save jjoergensen/6da6256228a25e27a281 to your computer and use it in GitHub Desktop.
# ...
include "dynamic_backends.vcl";
# ...
#!/bin/bash
set -e
elb_hostname=${elb_hostname:-myapp.herokuapp.com}
backend_vcl=${backend_vcl:-/etc/varnish/dynamic_backends.vcl}
ips=$(ruby -rresolv -e "puts Resolv::DNS.new.getaddresses('$elb_hostname').map(&:to_s)")
# clear out existing backends
cat <<EOF > $backend_vcl
director my_backend round-robin {
EOF
# create a new backends.vcl
for ip in $ips; do
cat <<EOF >> $backend_vcl
{
.backend = {
.host = "$ip";
.port = "http";
}
}
EOF
done
cat <<EOF >> $backend_vcl
}
EOF
# restart varnish
/etc/init.d/varnish reload
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment