Skip to main content

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