djereg / docker-web-redirect

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Docker-Web-Redirect

This Docker container listens on port 80 and redirects all web traffic to the given target domain/URL.

This repo was forked from https://github.com/MorbZ/docker-web-redirect

Features

  • Lightweight: Uses only ~2 MB RAM on Linux
  • Keeps the URL path and GET parameters
  • Permanent or temporary redirect

Usage

Docker run

The target domain/URL is set by the REDIRECT_TARGET environment variable. Possible redirect targets include domains (mydomain.net), paths (mydomain.net/my_page) or specific protocols (https://mydomain.net/my_page).

Example: $ docker run --rm -d -e REDIRECT_TARGET=mydomain.net -p 80:80 morbz/docker-web-redirect

Paths are retained

The URL path and GET parameters are retained. That means that a request to http://myolddomain.net/index.php?page=2 will be redirected to http://mydomain.net/index.php?page=2 when REDIRECT_TARGET=mydomain.net is set.

Permanent redirects

Redirects are, by default, permanent (HTTP status code 301). That means browsers will cache the redirect and will go directly to the new site on further requests. Also search engines will recognize the new domain and change their URLs. This means this image is not suitable for temporary redirects e.g. for site maintenance.

Temporary redirects

To make redirects temporary (HTTP status code 302) set the environment variable REDIRECT_TYPE to redirect.

Docker Compose

This image can be combined with the jwilder nginx-proxy. A sample docker-compose file that redirects myolddomain.net to mydomain.net could look like this:

version: '3'
services:
  redirect:
    image: ghcr.io/djereg/docker-web-redirect
    restart: always
    environment:
      - VIRTUAL_HOST=myolddomain.net
      - REDIRECT_TARGET=mydomain.net

About

License:MIT License


Languages

Language:Shell 81.1%Language:Dockerfile 18.9%