Nginx unter Windows installieren
Nginx ist ein Webserver und Reverse Proxy. Du kannst Nginx nutzen, um Webseiten auszuliefern, Anfragen an andere Anwendungen weiterzuleiten oder Dienste über HTTP und HTTPS erreichbar zu machen.
In diesem Artikel erklären wir dir, wie du Nginx auf einem Windows Server installierst und startest.
Voraussetzungen
Du benötigst:
einen Windows Server
Administratorzugriff
eine aktive Internetverbindung
Zugriff per Remote Desktop
optional eine Domain, wenn Nginx später öffentlich über eine Domain erreichbar sein soll
Für die Installation solltest du dich per Remote Desktop mit deinem Windows Server verbinden.
Nginx für Windows herunterladen
Nginx stellt eine eigene Windows-Version bereit. Diese wird als ZIP-Datei heruntergeladen und anschließend entpackt.
Öffne auf deinem Windows Server einen Browser.
Öffne die offizielle Nginx-Webseite.
Lade die aktuelle stabile Windows-Version herunter.
Speichere die ZIP-Datei auf deinem Server.
Die offizielle Downloadseite findest du unter:
https://nginx.org/en/download.html
Nginx bietet in der Regel zwei Varianten an:
Stable
stabile Version für normale Nutzung
Mainline
aktuelle Version mit neueren Änderungen
Für die meisten Nutzer ist die Stable-Version empfehlenswert.
Nginx entpacken
Nach dem Download musst du die ZIP-Datei entpacken.
Öffne den Ordner, in dem die ZIP-Datei gespeichert wurde.
Klicke mit der rechten Maustaste auf die Datei.
Wähle Alle extrahieren.
Entpacke den Ordner nach
C:\nginx.
Am Ende sollte die Datei nginx.exe unter diesem Pfad liegen:
C:\nginx\nginx.exe
Wenn dein entpackter Ordner zum Beispiel nginx-1.30.2 heißt, kannst du ihn entweder in nginx umbenennen oder den Pfad entsprechend anpassen.
Nginx starten
Öffne die Eingabeaufforderung als Administrator.
Klicke auf das Windows-Startmenü.
Suche nach
cmd.Klicke mit der rechten Maustaste auf Eingabeaufforderung.
Wähle Als Administrator ausführen.
Wechsle anschließend in den Nginx-Ordner:
cd C:\nginx
Starte Nginx:
start nginx
Alternativ kannst du auch direkt aus dem Ordner starten:
nginx.exe
Installation prüfen
Öffne auf dem Server einen Browser und rufe folgende Adresse auf:
http://localhost
Wenn Nginx korrekt gestartet wurde, erscheint die Nginx-Startseite.
Du kannst auch von deinem eigenen Computer aus testen, ob Nginx öffentlich erreichbar ist:
http://SERVER-IP
Ersetze SERVER-IP durch die IP-Adresse deines KVM-Servers.
Port 80 in der Windows Firewall öffnen
Wenn Nginx lokal funktioniert, aber von außen nicht erreichbar ist, blockiert häufig die Windows Firewall den Zugriff.
Für normale Webseiten muss Port 80 geöffnet sein.
Für HTTPS muss später zusätzlich Port 443 geöffnet werden.
Port 80 öffnen
Öffne das Windows-Startmenü.
Suche nach Windows Defender Firewall.
Öffne Erweiterte Einstellungen.
Wähle links Eingehende Regeln.
Klicke rechts auf Neue Regel.
Wähle Port.
Wähle TCP.
Trage bei bestimmten lokalen Ports
80ein.Wähle Verbindung zulassen.
Wähle die passenden Profile aus.
Vergib einen Namen, zum Beispiel
Nginx HTTP.Speichere die Regel.
Danach sollte Nginx über http://SERVER-IP erreichbar sein.
Port 443 für HTTPS öffnen
Wenn du später HTTPS verwenden möchtest, musst du zusätzlich Port 443 öffnen.
Erstelle dafür eine weitere eingehende Regel:
Typ
Port
Protokoll
TCP
Port
443
Aktion
Verbindung zulassen
Name
Nginx HTTPS
Nginx beenden
Wenn du Nginx stoppen möchtest, öffne die Eingabeaufforderung als Administrator und wechsle in den Nginx-Ordner:
cd C:\nginx
Nginx stoppen:
nginx -s stop
Nginx neu laden
Wenn du die Konfiguration geändert hast, musst du Nginx nicht immer komplett beenden. Du kannst die Konfiguration neu laden.
Befehl:
nginx -s reload
Das ist sinnvoll, wenn du zum Beispiel die Datei nginx.conf angepasst hast.
Nginx-Konfiguration prüfen
Vor dem Neuladen solltest du prüfen, ob die Konfiguration fehlerfrei ist.
Befehl:
nginx -t
Wenn die Konfiguration korrekt ist, zeigt Nginx eine erfolgreiche Prüfung an.
Wenn ein Fehler vorhanden ist, wird meistens die betroffene Datei und Zeile angezeigt.
Wichtige Ordner und Dateien
Nach dem Entpacken findest du mehrere Ordner und Dateien im Nginx-Verzeichnis.
C:\nginx\nginx.exe
Nginx-Programm
C:\nginx\conf\nginx.conf
Hauptkonfiguration
C:\nginx\html\
Standard-Webverzeichnis
C:\nginx\logs\
Logdateien
C:\nginx\logs\access.log
Zugriffslog
C:\nginx\logs\error.log
Fehlerlog
Standard-Webseite ändern
Die Standard-Webseite liegt im Ordner:
C:\nginx\html\
Dort findest du unter anderem die Datei:
index.html
Du kannst diese Datei bearbeiten oder durch deine eigene Webseite ersetzen.
Wenn du danach http://SERVER-IP öffnest, sollte deine eigene Seite angezeigt werden.
Einfache Nginx-Konfiguration
Die Hauptkonfiguration liegt hier:
C:\nginx\conf\nginx.conf
Eine einfache Server-Konfiguration für Port 80 sieht ungefähr so aus:
server { listen 80; server_name deine-domain.de; root html; index index.html; }
Wenn du eine Domain verwenden möchtest, muss diese per DNS auf die IP-Adresse deines Servers zeigen.
Domain mit Nginx verwenden
Damit deine Domain auf Nginx zeigt, benötigst du einen DNS-Eintrag.
Typischer Eintrag:
A
@
IPv4-Adresse deines Servers
A
www
IPv4-Adresse deines Servers
Wenn du eine Subdomain verwenden möchtest:
A
web
IPv4-Adresse deines Servers
Danach ist deine Webseite zum Beispiel über folgende Adresse erreichbar:
http://deinedomain.de
oder:
http://web.deinedomain.de
DNS-Änderungen sind nicht immer sofort aktiv. Es kann einige Minuten bis mehrere Stunden dauern, bis die Änderung überall übernommen wurde.
Nginx automatisch starten lassen
Nginx wird unter Windows nicht automatisch als Windows-Dienst installiert.
Wenn du Nginx einfach über start nginx startest, läuft es nur, solange der Prozess aktiv ist. Nach einem Neustart des Servers musst du Nginx erneut starten.
Für eine dauerhafte Nutzung gibt es zwei typische Möglichkeiten:
Nginx über die Aufgabenplanung starten
Nginx mit einem Service-Wrapper als Windows-Dienst einrichten
Nginx über Aufgabenplanung starten
Du kannst Nginx beim Systemstart über die Windows-Aufgabenplanung starten lassen.
Öffne die Windows-Aufgabenplanung.
Klicke auf Aufgabe erstellen.
Vergib einen Namen, zum Beispiel
Nginx Autostart.Wähle Mit höchsten Privilegien ausführen.
Erstelle einen Trigger Beim Systemstart.
Erstelle eine Aktion Programm starten.
Wähle als Programm
C:\nginx\nginx.exe.Setze als Startverzeichnis
C:\nginx.Speichere die Aufgabe.
Starte den Server anschließend neu und prüfe, ob Nginx automatisch gestartet wurde.
Nginx als Windows-Dienst verwenden
Nginx wird unter Windows standardmäßig nicht als Dienst eingerichtet.
Wenn du Nginx als Dienst betreiben möchtest, kannst du einen Service-Wrapper verwenden. Häufig wird dafür NSSM verwendet.
Dabei wird nginx.exe als Windows-Dienst registriert. Das ist praktisch, wenn Nginx automatisch starten und über die Windows-Diensteverwaltung kontrolliert werden soll.
Achte bei solchen Tools darauf, sie nur aus vertrauenswürdigen Quellen zu beziehen.
Nginx als Reverse Proxy verwenden
Nginx wird häufig als Reverse Proxy verwendet.
Ein Reverse Proxy nimmt Anfragen entgegen und leitet sie intern an eine andere Anwendung weiter.
Beispiel:
Besucher ruft
http://deinedomain.deaufNginx empfängt die Anfrage auf Port
80Nginx leitet die Anfrage intern an eine Anwendung auf Port
3000weiter
Das ist typisch für Anwendungen wie:
Node.js
Python-Webapps
Docker-Anwendungen
Webinterfaces
interne Dienste
Eine einfache Reverse-Proxy-Konfiguration kann zum Beispiel auf 127.0.0.1:3000 weiterleiten.
Nginx Logs prüfen
Wenn Nginx nicht funktioniert, solltest du zuerst die Logs prüfen.
Wichtige Dateien:
C:\nginx\logs\error.log
C:\nginx\logs\access.log
Die Datei error.log enthält Fehler beim Starten oder Verarbeiten von Anfragen.
Die Datei access.log zeigt eingehende Zugriffe.
Häufige Probleme
Webseite ist nur lokal erreichbar
Wenn http://localhost funktioniert, aber http://SERVER-IP nicht erreichbar ist, liegt das häufig an der Firewall.
Prüfe:
Port
80ist in der Windows Firewall geöffnetNginx läuft
die Server-IP ist korrekt
dein Server ist online
keine andere Firewall blockiert den Zugriff
Port 80 ist bereits belegt
Wenn Nginx nicht startet, kann Port 80 bereits von einem anderen Programm verwendet werden.
Typische Programme sind:
IIS
Apache
andere Webserver
Entwicklungsserver
Control Panels
Prüfe belegte Ports mit:
netstat -ano | findstr :80
Wenn ein anderes Programm Port 80 nutzt, musst du dieses Programm stoppen oder Nginx auf einen anderen Port konfigurieren.
Nginx startet nicht
Prüfe zuerst die Konfiguration:
nginx -t
Prüfe anschließend die Fehlerlogs:
C:\nginx\logs\error.log
Häufige Ursachen sind:
falscher Pfad
fehlerhafte
nginx.confPort bereits belegt
fehlende Rechte
Datei wurde falsch gespeichert
falsche Klammern in der Konfiguration
Änderungen werden nicht übernommen
Wenn du die Konfiguration geändert hast, musst du Nginx neu laden.
Befehl:
nginx -s reload
Wenn das nicht funktioniert, prüfe die Konfiguration:
nginx -t
Domain zeigt nicht auf den Server
Prüfe:
A-Record zeigt auf die richtige IPv4-Adresse
DNS-Änderung ist bereits aktiv
Domain wurde richtig geschrieben
Nginx ist gestartet
Port
80ist geöffnetdie Nginx-Konfiguration enthält die richtige Domain
HTTPS funktioniert nicht
Für HTTPS brauchst du:
Port
443ein gültiges SSL-Zertifikat
passende Nginx-Konfiguration
eine Domain, die auf den Server zeigt
Ohne SSL-Zertifikat funktioniert HTTPS nicht korrekt.
Windows oder Linux für Nginx?
Nginx kann unter Windows genutzt werden. Für produktive Webserver wird aber häufig Linux verwendet, weil Nginx dort stärker verbreitet ist und sich einfacher als Systemdienst betreiben lässt.
Windows kann sinnvoll sein, wenn:
deine Anwendung Windows benötigt
du bereits einen Windows Server nutzt
du Nginx als einfachen Reverse Proxy verwenden möchtest
du eine bestimmte Windows-Anwendung veröffentlichen möchtest
Linux ist oft sinnvoller, wenn:
du einen klassischen Webserver betreiben möchtest
du viele Webseiten hostest
du Let's Encrypt automatisiert nutzen möchtest
du eine stabile Serverdienst-Verwaltung mit systemd möchtest
Zuletzt aktualisiert