Webserver mit nginx
Um einen nginx Webserver Container einzubinden, sind folgende Schritte durchzuführen:
- Anlegen des Verzeichnis /opt/containers/nginx
- Anlegen des Verzeichnis /opt/containers/nginx/html
sudo mkdir -p /opt/containers/nginx/html
Für den Containerstart ist die Datei /opt/containers/nginx/docker-compose.yml mit folgendem Inhalt anzulegen:
#
# /opt/containers/nginx/docker-compose.yml
# Startet einen nginx Webserver
#
version: '3'
services:
nginx:
image: nginx:latest
container_name: nginx
restart: unless-stopped
networks:
- proxy
volumes:
- ./html:/usr/share/nginx/html
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.redirect2www.redirectregex.regex=^https://die-steffens.eu/(.*)"
- "traefik.http.middlewares.redirect2www.redirectregex.replacement=https://www.die-steffens.eu/$${1}"
- "traefik.http.routers.nginx-www.entrypoints=https"
- "traefik.http.routers.nginx-www.rule=Host(`www.die-steffens.eu`,`die-steffens.eu`)"
- "traefik.http.routers.nginx-www.tls=true"
- "traefik.http.routers.nginx-www.tls.certresolver=http"
- "traefik.http.routers.nginx-www.service=nginx"
- "traefik.http.routers.nginx-www.middlewares=redirect2www,secHeaders@file"
- "traefik.http.services.nginx.loadbalancer.server.port=80"
- "traefik.docker.network=proxy"
networks:
proxy:
external: true
Der Webserver kann über das unsichere Port 80 Protokoll http oder das sichere Port 443 Protokoll https angesprochen werden. In ersterem Fall wird auf das sichere https Protokoll umgelenkt.
Gestartet und gestoppt wird wie üblich mit:/opt/containers/bookstack/docker compose -f /opt/containers/nginx/docker-compose.yml up -d/opt/containers/bookstack/docker compose -f /opt/containers/nginx/docker-compose.yml down