From 2a08de6115e9ec635ddfd3944dd23577ed84667e Mon Sep 17 00:00:00 2001 From: Lutchy Horace Date: Wed, 17 Mar 2021 17:47:19 -0400 Subject: [PATCH] Initial support for --donotredirect --- bootstrap.sh | 11 +++++--- createVhosts.sh | 69 +++++++++++++++++++++++++++++++++++++++---------- 2 files changed, 63 insertions(+), 17 deletions(-) diff --git a/bootstrap.sh b/bootstrap.sh index bb1db77..ac595d3 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 $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 8b725c4..c3461cc 100755 --- a/createVhosts.sh +++ b/createVhosts.sh @@ -2,7 +2,6 @@ # # Create Vhosts on VPS3 # -DEBUG=0 #set -e @@ -13,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" @@ -48,10 +48,7 @@ else exit 1 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; @@ -60,6 +57,7 @@ fi eval set -- "$OPTS" _domain=false +_donotredirect=false _root="" _backend="" _listenip="" @@ -80,6 +78,9 @@ while true; do --desc ) _desc=$2 shift ;; + --donotredirect ) + _donotredirect=true + shift ;; -h | --help ) usage; shift ;; -- ) shift; break ;; * ) shift;; @@ -101,16 +102,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 + +#<<<<<