Apache mit ModRewrite vor NGINX?


Hoffmann1990

New Member
Guten Tag,

auf den managed vServern von Hetzner kann man als Kunde anscheinend via SSH gängige Software installieren, wie z.b. NGINX...

https://docs.hetzner.com/de/konsoleh/server-management/faq/installation-of-common-software/#nginx
Ich verstehe den folgenden Abschnitt in der Anleitung nicht:

Wenn nginx von außen erreicht werden soll, muss die .htaccess angepasst werden. In der .htaccess im Document Root des Accounts muss folgendes ergänzt/eingetragen werden:

RewriteEngine on
RewriteRule ^(.*) http://localhost:<port>/$1 [P]

Leider fange ich gerade erst an, mich mit NGINX zu beschäftigen, aber eigentlich dachte ich, dass man eher NGINX als Proxy für Apache einsetzt und nicht umgekehrt. Bei NGINX liest es sich jedenfalls so, als sei die Verwendung von .htaccess ein Sakrileg:

You can’t do this. You shouldn’t. If you need .htaccess, you’re probably doing it wrong.

Weiß hier jemand, warum das bei Hetzner so gemacht wird bzw. welche Vor- und Nachteile das hat?

Vielen Dank und herzliche Grüße
Hoffmann
 
Frag doch Hetzner, die werden wohl am besten wissen, warum sie es so gemacht haben.

Machen kann man alles - Vor- und Nachteile hat auch alles.
 
Ganz wichtig vorweg: die Dokumentation handelt ausschliesslich um die Hetzner Managedserver Umgebung.
In dieser sind alle Server von Grund auf gleich konfiguriert, will heissen mit Apache. Es gibt aber durchaus Software die nur auf Nginx betrieben werden kann/unterstützt wird. Was Hetzner für Nginx und generell jede andere HTTP-fähige Software empfiehlt, ist den vorinstallierten und nicht austauschbaren Apache als Proxy für Nginx zu verwenden, falls man denn Nginx auch braucht.

Natürlich kann man den "üblichen" Einsatzzweck von nginx-vor-APache damit nicht realisieren, aber dann ist man bei Hetzner Standard-Managed (eigentlich Webhosting mit dedizierter Umgebung) falsch.
 
Hallo und vielen Dank für eure Antworten.

Natürlich kann man den "üblichen" Einsatzzweck von nginx-vor-APache damit nicht realisieren, aber dann ist man bei Hetzner Standard-Managed (eigentlich Webhosting mit dedizierter Umgebung) falsch.

In diesem Fall geht es um eine Wordpress-Installation, die angeblich für NGINX vorkonfiguriert ist und Apache gar nicht benötigt. Ein Aufruf der Startseite erzeugt ca. 40 Requests von der aufgerufenen Domain und überträgt mit HTTP/2 ungecashed ca. 1,5 MB Daten (Größe ca. 4 MB). Weitere Unterseiten erzeugen in der Regel die Hälfte an Requests/Daten.

Kann man halbwegs abschätzen, ob bzw. ab welcher Größenordnung der aufgezwungene Apache hier ein Problem darstellen könnte?
 
Kann man halbwegs abschätzen, ob bzw. ab welcher Größenordnung der aufgezwungene Apache hier ein Problem darstellen könnte?
Apache per se ist kein Problem da seine aktuelle Leistungsfähigkeit weit über dem liegt was (anekdotisch) beschrieben wird. Ich sehe für kleine-medium Seiten keinen Grund Nginx zwingend zu verwenden. Bei Wordpress fängt man generell an anderer Stelle mit optimieren an (CDN, Object-Caching, Minimize, ...) was nicht nur die Anzahl der Anfragen an den Webserver sondern das Besuchererlebnis insgesamt verbessert.

Um deine Frage zu beantworten: für dein Szenario ist es nicht nur unnütz sondern schlicht kontraproduktiv da Nginx keinerlei Vorteile ausspielen kann. Falls du Nginx verwenden willst/musst, dann hast du das falsche Webhosting-Produkt.
 
Hallo,
anscheinend wird NginX immer als schneller und leistungsfähiger und der bessere Webserver beschrieben. Nach den Aussagen hier gibt es daran Zweifel.
Das beruhigt mich etwas. Danke für diese Einschätzung.
 
die meisten dieser Aussagen stammen aus Zeiten von Apache 1.x und 2.0 - und halten sich bis heute. Zudem betreffen sie Abrufzahlen und Durchsätze, die ein Standardwebserver für Privatnutzer und klassische Seiten nie erreicht. Da muss man wirklich recht viele Seitenabrufe habe um da in relevante Bereiche zu kommen... (und spätestens mit php + DB im Backend ist der Server am Frontend eh egal)

Ich hab mal den direkten Vergleich gemacht mit einer recht gut ausgelasteten matomo-Installation - und konnte zwischen Apache und Nginx keinen relevanten Unterschied feststellen.
 
Nach den Aussagen hier gibt es daran Zweifel.
Nein Zweifel eigentlich nicht. Nginx IST skalierbarer als Apache bei gleichzeitig höherer Ressourceneffizienz. Die "Ineffizienz" von Apache stammt aber hauptsächlich aus seiner Flexibilität und lässt sich zu einigen Teilen wegoptimieren - allerdings verliert man dann auch sehr viele Funktionen die Apache erst überhaupt weiterhin so populär machen - .htaccess, Module, ... sind alle mit Ressourcenkosten verbunden.

Die Frage ist eher umgedreht zu stellen; BRAUCHE ich Nginx oder reicht mir eine üblicherer Installation mit einem LAMP Stack?
Nginx wird öfter gerne von Webhoster vor Apache geschmissen. Während es gegen einige Angriffe (bspw Slowloris bei mpm_prefork/mpm_worker) hilft und mit XSendfile bei Downloadportalen effizienter ist, ist es im Alltag eigentlich komplett schwachsinnig.

Als Gegenbeispiel; vor einigen Jahren haben wir bei einem Projekt Nginx mit LUA-Code dazu gebracht die URL->statische_Datei Mappings im reverse-proxy trotz htaccess-Verwendung zu "lernen", was eine größere Systementlastung bei hohen Besucherzahlen brachte, als auch je nach Benutzerkonfiguration und Domain auf unterschiedliche Apache-Backends zu leiten. Zusätzlich kann man damit auch domain-spezifische Request-Queues bauen, usw.... Aber ich schweife ab.

Nein, Nginx als Reverse Proxy ist absolut nicht sinnlos. Nein, du brauchst es nicht wenn du fragen musst ;)
 
Back
Top