From a88f85c0f11d57b449518fe059d966e5d50316b5 Mon Sep 17 00:00:00 2001
From: Martin van Wingerden <martin@martinvw.nl>
Date: Thu, 28 Dec 2017 15:03:23 +0100
Subject: [PATCH] Added support for a configurable scheme

Added support for a configurable scheme, either http or https will at least work others might

Fixes: #3

Signed-off-by: Martin van Wingerden <martinw@martinvw.nl>
---
 README.md          | 4 +++-
 default.conf       | 2 +-
 docker-compose.yml | 5 ++++-
 run.sh             | 6 ++++++
 4 files changed, 14 insertions(+), 3 deletions(-)

diff --git a/README.md b/README.md
index cfd4597..69d5c06 100644
--- a/README.md
+++ b/README.md
@@ -13,7 +13,8 @@ A very simple container to redirect HTTP traffic to another server, based on `ng
 - `SERVER_REDIRECT` - server to redirect to, eg. `www.example.com`
 - `SERVER_REDIRECT_PATH` - optionally define path to redirect all requests eg. `/landingpage`
    if not set nginx var `$request_uri` is used
-
+- `SERVER_REDIRECT_SCHEME` - optionally define scheme to redirect to 
+   if not set nginx var `$scheme` is used
 
 See also `docker-compose.yml` file.
 
@@ -27,6 +28,7 @@ With `docker`
 
     docker run -e SERVER_REDIRECT=www.example.com -p 8888:80 schmunk42/nginx-redirect
     docker run -e SERVER_REDIRECT=www.example.com -e SERVER_REDIRECT_PATH=/landingpage -p 8888:80 schmunk42/nginx-redirect
+    docker run -e SERVER_REDIRECT=www.example.com -e SERVER_REDIRECT_PATH=/landingpage -e SERVER_REDIRECT_SCHEME=https -p 8888:80 schmunk42/nginx-redirect
 
 ---
 
diff --git a/default.conf b/default.conf
index 84c7bb0..3ebbe08 100644
--- a/default.conf
+++ b/default.conf
@@ -2,7 +2,7 @@ server {
     listen       80;
     server_name  localhost;
 
-    return 301 $scheme://${SERVER_REDIRECT}${SERVER_REDIRECT_PATH};
+    return 301 ${SERVER_REDIRECT_SCHEME}://${SERVER_REDIRECT}${SERVER_REDIRECT_PATH};
 
     # redirect server error pages to the static page /50x.html
     #
diff --git a/docker-compose.yml b/docker-compose.yml
index 85f8a22..7f5304b 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -5,5 +5,8 @@ to:
   environment:
     - SERVER_REDIRECT=www.example.com
     # optionally define path to redirect all requests
-    # if not set nginx var  is used
+    # if not set nginx var $request_uri is used
     #- SERVER_REDIRECT_PATH=/landingpage
+    # optionally define schema to redirect all requests
+    # if not set nginx var $scheme is used
+    #- SERVER_REDIRECT_SCHEME=https
diff --git a/run.sh b/run.sh
index 61cfca8..02621fa 100644
--- a/run.sh
+++ b/run.sh
@@ -10,7 +10,13 @@ if [ ! -n "$SERVER_REDIRECT_PATH" ] ; then
     SERVER_REDIRECT_PATH='$request_uri'
 fi
 
+# set redirect scheme from optional ENV var
+if [ ! -n "$SERVER_REDIRECT_SCHEME" ] ; then
+    SERVER_REDIRECT_SCHEME='$scheme'
+fi
+
 sed -i "s|\${SERVER_REDIRECT}|${SERVER_REDIRECT}|" /etc/nginx/conf.d/default.conf
 sed -i "s|\${SERVER_REDIRECT_PATH}|${SERVER_REDIRECT_PATH}|" /etc/nginx/conf.d/default.conf
+sed -i "s|\${SERVER_REDIRECT_SCHEME}|${SERVER_REDIRECT_SCHEME}|" /etc/nginx/conf.d/default.conf
 
 nginx -g 'daemon off;'
-- 
GitLab