A very simple container to redirect HTTP/HTTPS traffic to another server, based on nginx
.
Based on project: https://github.com/schmunk42/docker-nginx-redirect
SERVER_ENABLE_HTTP_TRAFFIC
- serve traffic in HTTP (80)SERVER_ENABLE_HTTPS_TRAFFIC
- serve traffic in HTTPS (443)SERVER_SSL_CERTIFICATE_FILE_NAME
- Set certificate file name. Certificate files should be mounted at/etc/ssl/certs
path.SERVER_SSL_CERTIFICATE_KEY_NAME
- Set certificate key file name. Certificate files should be mounted at/etc/ssl/certs
path.SERVER_REDIRECT
- server to redirect to, eg.www.example.com
SERVER_NAME
- optionally define the server name to listen on eg.~^www.(?<subdomain>.+).example.com
- useful for capturing variable to use in server_redirect.
SERVER_REDIRECT_PATH
- optionally define path to redirect all requests eg./landingpage
- if not set nginx var
$request_uri
is used
- if not set nginx var
SERVER_REDIRECT_SCHEME
- optionally define scheme to redirect to- if not set but X-Forwarded-Proto is send as request header with value 'https' this will be used.
In all other cases nginx var
$scheme
is used
- if not set but X-Forwarded-Proto is send as request header with value 'https' this will be used.
In all other cases nginx var
SERVER_REDIRECT_CODE
- optionally define the http status code to use for redirection- if not set or not in list of allowed codes 301 is used as default
- allowed Codes are: 301, 302, 303, 307, 308
SERVER_REDIRECT_POST_CODE
- optionally define the http code to use for POST redirection- useful if client should not change the request method from POST to GET
- if not set or not in allowed Codes
SERVER_REDIRECT_CODE
is used - so per default all requests will be redirected with the same status code
SERVER_REDIRECT_PUT_PATCH_DELETE_CODE
- optionally define the http code to use for PUT, PATCH and DELETE redirection- useful if client should not change the request method from PUT, PATCH and DELETE to GET
- if not set or not in allowed Codes
SERVER_REDIRECT_CODE
is used - so per default all requests will be redirected with the same status code
SERVER_ACCESS_LOG
- optionally define the location where nginx will write its access log- if not set /dev/stdout is used
SERVER_ERROR_LOG
- optionally define the location where nginx will write its error log- if not set /dev/stderr is used
See also docker-compose.yml
file.
Using image from Docker Hub:
docker run -e SERVER_REDIRECT=www.example.com -p 80:80 ahabid/web-redirector:1.0
docker run -e SERVER_REDIRECT=www.example.com -e SERVER_REDIRECT_PATH=/landingpage -p 80:80 ahabid/web-redirector:1.0
docker run -e SERVER_REDIRECT=www.example.com -e SERVER_REDIRECT_PATH=/landingpage -e SERVER_REDIRECT_SCHEME=https -p 80:80 ahabid/web-redirector:1.0
Using image from GitHub:
docker run -e SERVER_REDIRECT=www.example.com -p 80:80 docker.pkg.github.com/a-h-abid/docker-web-redirector/web-redirector:1.0
For certificates usage:
docker run \
-e SERVER_REDIRECT=www.example.com \
-e SERVER_ENABLE_HTTPS_TRAFFIC=true \
-e SERVER_SSL_CERTIFICATE_FILE_NAME=default.crt \
-e SERVER_SSL_CERTIFICATE_KEY_NAME=default.key \
-v /path/to/certs-dir:/etc/ssl/certs \
-p 443:443 \
ahabid/web-redirector:1.0
MIT