diff --git a/bootstrap.sh b/bootstrap.sh index f7cadac..62cf12a 100644 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -26,13 +26,18 @@ function warn function validate_host { + local _ret=0 + echo "$1" | grep -P '^(http|https):\/\/(([a-z0-9]|[a-z0-9][a-z0-9\-]*[a-z0-9])\.)*([a-z0-9]|[a-z0-9][a-z0-9\-]*[a-z0-9])(:[0-9]+)?$' > /dev/null 2>&1 if [ $? -eq 0 ]; then debug "Checking host is resolvable: $1" - # The remote servers may sometimes have self-signed certs - curl --insecure $1 > /dev/null 2>&1 + # Add --insecure becase remote servers may sometimes have self-signed certs + if ! curl --insecure --max-time 5 $1 > /dev/null 2>&1; then + _ret=1 + debug "Host '$1' is not resolvable!" + fi fi - return $? + return $_ret } function validate_ip diff --git a/createVhosts.sh b/createVhosts.sh index b24f8be..42685cc 100755 --- a/createVhosts.sh +++ b/createVhosts.sh @@ -12,8 +12,9 @@ function usage echo " Domain to use when creating vhost" echo " --root /var/www/html" echo " Root directory of this vhost" - echo " --backend http://127.0.0.1:80" + echo " --backend http://127.0.0.1" echo " Hostname of the backend server to pass traffic to" + echo " Note: Do not specify a port" echo " --listenip x.x.x.x" echo " IP to bind to when listening" echo " --desc x.x.x.x" @@ -96,7 +97,7 @@ fi # gain priviledges become "$@" -OPTS=$(getopt -o h -l domain:,root:,backend:,listenip:,desc: -n 'createVhosts' -- "$@") +OPTS=$(getopt -o h -l domain:,root:,backend:,listenip:,desc:,donotredirect -n 'createVhosts' -- "$@") if [ "$?" -gt '0' ]; then echo 'Failed to set command line arguments' exit 1; @@ -105,6 +106,7 @@ fi eval set -- "$OPTS" _domain=false +_donotredirect=false _root="" _backend="" _listenip="" @@ -125,6 +127,9 @@ while true; do --desc ) _desc=$2 shift ;; + --donotredirect ) + _donotredirect=true + shift ;; -h | --help ) usage; shift ;; -- ) shift; break ;; * ) shift;; @@ -135,8 +140,8 @@ if [[ $_domain = false ]]; then err "You must set domain" fi -echo -n "Checking if $_root exists?" if test -n "$_root"; then + echo -n "Checking if $_root exists?" if ! test -d $_root; then echo " Creating..." mkdir -p $_root @@ -146,16 +151,48 @@ if test -n "$_root"; then _rootpath="root $_root;" fi +_check_host=success +_locationblock_http="" +_locationblock_https="" if test -n "$_backend"; then - echo "Verifying backend..." - if ! validate_host $_backend; then - err "Invalid hostname: $_backend. Not resolvable!" - fi -_locationblock=$(cat <<- EOF - proxy_pass $_backend; + echo "Verifying backend(s)..." + _https_backend=$(echo $_backend | sed 's/http/https/') + if validate_host $_https_backend:443; then + +#<<<<<