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