Sie können nginx auf Ihrem oneVPS als Docker-Container betreiben und darüber eine Website bereitstellen. In dieser Anleitung wird nginx hinter dem Reverse Proxy Traefik betrieben, damit die Domain über HTTPS erreichbar ist.
proxy sowie die in unserer Traefik-Anleitung verwendeten EntryPoints und Zertifikatseinstellungen.
Domain vorbereiten
Die Domain oder Subdomain, über die nginx erreichbar sein soll, muss per DNS auf die öffentliche IP-Adresse Ihres oneVPS zeigen.
In den folgenden Beispielen wird nginx.example.com verwendet. Ersetzen Sie diese Domain durch Ihre eigene Domain oder Subdomain.
Verzeichnis für nginx erstellen
Verbinden Sie sich per SSH mit Ihrem oneVPS und erstellen Sie das Verzeichnis für nginx und die Website-Dateien:
mkdir -p /opt/containers/nginx/htmlTestseite erstellen
Erstellen Sie eine einfache HTML-Datei, mit der Sie die nginx-Installation später prüfen können:
nano /opt/containers/nginx/html/index.htmlTragen Sie beispielsweise folgenden Inhalt ein:
<!doctype html>
<html lang="de">
<head>
<meta charset="utf-8">
<title>nginx auf oneVPS</title>
</head>
<body>
<h1>nginx funktioniert</h1>
</body>
</html>Speichern Sie die Datei.
Docker-Compose-Datei erstellen
Erstellen Sie anschließend die Compose-Datei:
nano /opt/containers/nginx/compose.yamlFügen Sie folgende Konfiguration ein und ersetzen Sie nginx.example.com durch Ihre eigene Domain oder Subdomain:
services:
nginx:
image: nginx:latest
container_name: nginx
restart: unless-stopped
volumes:
- ./html:/usr/share/nginx/html:ro
networks:
- proxy
labels:
- "traefik.enable=true"
- "traefik.http.routers.nginx.entrypoints=http"
- "traefik.http.routers.nginx.rule=Host(`nginx.example.com`)"
- "traefik.http.middlewares.nginx-https-redirect.redirectscheme.scheme=https"
- "traefik.http.routers.nginx.middlewares=nginx-https-redirect"
- "traefik.http.routers.nginx-secure.entrypoints=https"
- "traefik.http.routers.nginx-secure.rule=Host(`nginx.example.com`)"
- "traefik.http.routers.nginx-secure.tls=true"
- "traefik.http.routers.nginx-secure.tls.certresolver=http"
- "traefik.http.routers.nginx-secure.middlewares=secHeaders@file"
- "traefik.http.services.nginx.loadbalancer.server.port=80"
- "traefik.docker.network=proxy"
networks:
proxy:
external: trueDocker-Compose-Konfiguration prüfen
Wechseln Sie in das nginx-Verzeichnis:
cd /opt/containers/nginxPrüfen Sie anschließend die Compose-Datei:
docker compose configWenn keine Fehlermeldung ausgegeben wird, können Sie den Container starten.
nginx starten
Starten Sie nginx im Hintergrund:
docker compose up -dPrüfen Sie anschließend, ob der Container ausgeführt wird:
docker compose psDer Container nginx sollte als gestartet angezeigt werden.
nginx im Browser prüfen
Öffnen Sie die zuvor konfigurierte Domain, beispielsweise https://nginx.example.com, in Ihrem Browser.
Wenn die Testseite mit der Meldung nginx funktioniert angezeigt wird und die Website über HTTPS erreichbar ist, wurde nginx erfolgreich eingerichtet.
Eigene Website bereitstellen
Die Dateien im Verzeichnis /opt/containers/nginx/html werden vom nginx-Container als Website bereitgestellt.
Sie können die Testdatei index.html daher durch Ihre eigenen HTML-, CSS-, JavaScript- und weiteren statischen Dateien ersetzen. Der nginx-Container muss nach Änderungen an diesen Dateien nicht neu gestartet werden.
nginx ist nicht erreichbar
Wenn die Website nicht erreichbar ist, prüfen Sie zuerst, ob der Container ausgeführt wird:
docker compose psDie aktuellen nginx-Meldungen können Sie mit folgendem Befehl anzeigen:
docker compose logs --tail=50 nginxPrüfen Sie außerdem, ob die verwendete Domain auf die IP-Adresse Ihres oneVPS zeigt und ob nginx und Traefik mit dem Docker-Netzwerk proxy verbunden sind.