#!/bin/bash # # vhost-stack # https://git.stack-source.com/msb/vhost-stack # MIT License Copyright (c) 2021 Matthew Saunders Brown # load include file source $(dirname $0)/vhost.sh help() { thisfilename=$(basename -- "$0") echo "Disables Varnish config for specified virtualhost." echo "" echo "usage: $thisfilename virtualhost" echo "" echo " -h Print this help." echo "" echo " Varnish is proxied through Apache. This disables the" echo " Apache proxy to Varnish and removes the varnish config." exit } # check for and set virtualhost if [ -n "$1" ]; then if [ $1 == "-h" ]; then help else virtualhost="${1,,}" fi else echo "virtualhost not set" exit 1 fi # grab macro line from virtualhost config if macro_vhost_line=`grep -m 1 "Use .*" /etc/apache2/sites-available/$virtualhost.conf` ; then macro_name=`echo "$macro_vhost_line" | awk '{print $2}'` else echo "$virtualhost is not configured with mod_macro" exit 1 fi # make sure Varnish is already enabled if [[ $macro_name =~ ^.*Varnish$ ]]; then # set new macro_name macro_name=`echo $macro_name | sed -e 's|Varnish$||'` vhost_enable="$macro_name $virtualhost" else echo "Varnish is not enabled for $virtualhost" exit 1 fi # check if VHost macro is for a Subdomain or Alias if [[ "$macro_name" == *"Subdomain"* ]] || [[ "$macro_name" == *"Alias"* ]]; then macro_var=`echo "$macro_vhost_line" | awk '{print $5}'` vhost_enable="$vhost_enable $macro_var" fi /usr/local/bin/vhost-enable.sh $vhost_enable if [ -f /etc/varnish/sites.d/$virtualhost ]; then rm /etc/varnish/sites.d/$virtualhost /usr/local/bin/vhost-varnish-update-sites.sh $vhost_enable # uncomment to flush varnish cache # systemctl is-active --quiet varnish && systemctl reload --quiet varnish fi