Apache vs. nginx: Unterschiede und wie du Config übersetzt

Apache vs. nginx

Apache vs. nginx: Prozesse, .htaccess und Config-Übersetzung | We.Inc

Apache und nginx im Vergleich: wie sie Verbindungen verarbeiten, .htaccess pro Verzeichnis gegenüber zentraler Config, Reloads und Proxying, mit einem Übersetzer für gängige Rewrite-Regeln.

Beide sind ausgereifte Open-Source-Webserver. Apache lädt Module in ein wählbares Prozessmodell (prefork, worker oder event) und lässt jedes Verzeichnis Einstellungen per .htaccess-Datei überschreiben. nginx betreibt einen Master-Prozess und einige eventgesteuerte Worker, liest nur seine zentrale Config und wird häufig als Reverse Proxy vor Anwendungsserver gesetzt.

Apache und nginx im direkten Vergleich

Bei der Wahl geht es vor allem darum, wo die Konfiguration liegt und wer sie ändern darf. Diese Seite verzichtet auf Benchmark-Behauptungen, die ganz von Workload und Tuning abhängen, und konzentriert sich auf die Unterschiede, die dir beim Betrieb einer Website begegnen: wie jeder Server Verbindungen verarbeitet, warum es .htaccess gibt und wie sich deine vorhandenen Rewrite-Regeln übersetzen lassen. Mit dem Übersetzer siehst du die nginx-Version einer vertrauten Apache-Regel.

Häufige Fragen

Ist nginx schneller als Apache?

Das hängt von Aufgabe und Tuning ab, sei also bei jeder einzelnen Zahl vorsichtig. Die eventgesteuerten Worker von nginx sind dafür gebaut, viele inaktive Verbindungen günstig offen zu halten. Das event-MPM von Apache hat diesen Abstand verkleinert, indem es ebenfalls threadsicheres Polling nutzt. Miss deinen eigenen Workload, bevor du allein wegen der Geschwindigkeit wechselst.

Unterstützt nginx .htaccess-Dateien?

Nein. nginx kennt keine Override-Dateien pro Verzeichnis, Regeln aus einer .htaccess müssen also in die Serverkonfiguration verschoben und nginx neu geladen werden. Das ist ein bewusster Kompromiss: keine Dateisuche bei jeder Anfrage, dafür können nur Personen mit Zugriff auf die Haupt-Config Regeln ändern.

Kann ich .htaccess automatisch in nginx umwandeln?

Einfache Weiterleitungen und Fallbacks lassen sich sauber übersetzen, wie der Übersetzer auf dieser Seite zeigt. Lange RewriteCond-Ketten mit Flags wie [P] oder Umgebungsvariablen muss ein Mensch lesen, weil nginx dieselbe Absicht mit anderen Bausteinen ausdrückt.

Was sollte ich für eine WordPress- oder PHP-Website wählen?

Wenn dein Hoster dir nur Dateizugriff gibt, kannst du Regeln überhaupt nur mit Apache und .htaccess ändern. Auf einem Server, den du kontrollierst, funktionieren beide mit PHP-FPM; in nginx schreibst du den Fallback für schöne URLs einmal mit try_files in den server-Block.

Wie lade ich die Config neu, ohne Verbindungen zu verlieren?

Bei nginx führst du nginx -s reload aus: Der Master prüft die neue Config, startet neue Worker und bittet die alten, sauber zum Ende zu kommen. Bei Apache erledigt apachectl graceful dasselbe für seine Kindprozesse.

Prozessmodelle einfach erklärt

Warum .htaccess wichtig ist

Dieselbe Website in beiden Servern

Apache Virtual Host

Statische Dateien aus einem Ordner plus SPA-Fallback, im vhost konfiguriert, sodass keine .htaccess nötig ist.

nginx server-Block

Dasselbe Verhalten: Root-Ordner, try_files-Fallback und eine eigene Fehlerseite.

HTTPS erzwingen

Apache prüft das HTTPS-Flag; nginx nutzt einen separaten Server auf Port 80, der nur weiterleitet.

Die nackte Domain auf www umleiten

Die nginx-Doku empfiehlt einen eigenen server-Block mit return statt eines if auf den Host.

Fallback für Single-Page-Apps

Echte Dateien ausliefern, wenn es sie gibt, und index.html für jeden anderen Pfad.

Eine alte Seite umleiten

Redirect aus mod_alias braucht keine Rewrite-Engine; nginx trifft den exakten Pfad mit location =.

Eigene 404-Seite

Beide verweisen den Fehler auf eine Seite derselben Website.

/api an einen App-Server weiterleiten

Apache braucht geladene mod_proxy und mod_proxy_http, mit passenden abschließenden Schrägstrichen in beiden Argumenten; Proxying ist in nginx eingebaut.

Versteckte Dateien wie .git sperren

Verhindert, dass Dateien ausgeliefert werden, deren Name mit einem Punkt beginnt.

Einen Sicherheits-Header hinzufügen

Mit always fügen beide Server den Header auch Fehlerantworten hinzu, nicht nur erfolgreichen.

Aufgaben filtern

https, proxy, 404...

Apache (.htaccess oder Virtual Host)

nginx (server-Block)

Keine Aufgabe passt zu diesem Filter.

Kostenlos starten · Keine Kreditkarte nötig

Verwandt: Ratgeber

Produkt

Für wen

Funktionen

Ressourcen

Unternehmen

Sitemap