Ein Reverse-Proxy sitzt vor einem Webserver und empfängt alle Anfragen, bevor sie den Ursprungsserver erreichen. Er funktioniert ähnlich wie ein Forward-Proxy, außer dass es in diesem Fall der Webserver ist, der den Proxy benutzt, und nicht der Benutzer oder Client. Reverse-Proxys werden in der Regel verwendet, um Leistung, Sicherheit und Zuverlässigkeit des Webservers zu verbessern.

Zum Beispiel kannst du eine Nicht-WordPress-Seite unter der Domain example.com auf Server A hosten lassen und ihren Blog unter der URL example.com/blog auf Server B hosten lassen. Du kannst dies erreichen, indem du einen Reverse-Proxy für den Server hinzufügst, der deine Webseite hostet. Du kannst den Reverse-Proxy so konfigurieren, dass Anfragen an das Blog auf einen anderen Server umgeleitet werden (z.B. einen Managed WordPress Host wie Kinsta).

In diesem Artikel lernst du die Grundlagen von Reverse-Proxy-Servern kennen, wie sie funktionieren, was ihre Hauptvorteile sind und wie du sie zur Beschleunigung und Sicherung deiner Webseite für WordPress nutzen kannst.

Aufgeregt? Fangen wir an!

Was ist ein Reverse Proxy?

Um zu verstehen, was ein Reverse-Proxy-Server ist, musst du zuerst seine Rolle kennen und dich mit allen damit verbundenen Begriffen vertraut machen.

Wenn du normal im Internet surfst, indem du einen Domain-Namen eingibst oder auf einen Link klickst, verbindet sich dein Browser/Gerät direkt mit dem Server der Webseite und beginnt mit dem Herunterladen seiner Ressourcen.

Wie das Surfen im Internet normalerweise funktioniert
Wie das Surfen im Internet normalerweise funktioniert

Wenn du deine IP-Adresse von den Webseiten, die du besuchst, anonymisieren möchtest, dann kannst du einen Proxy-Server benutzen, um alle deine Anfragen zuerst an ihn zu schicken. Er leitet deine Anfragen an den DNS-Resolver weiter und lädt dann die Ressourcen der Webseite von ihrem Ursprungsserver herunter.

Danach leitet es diese Ressourcen an dein Gerät weiter. Dies wird Forward-Proxy genannt.

Wie ein Forward-Proxy-Server funktioniert
Wie ein Forward-Proxy-Server funktioniert

Du bist komplett von der Webseite verborgen, da es denkt, dass deine Anfrage vom Forward Proxy stammt.

Abgesehen von der Verbesserung der Privatsphäre der Benutzer wird ein Forward-Proxy hauptsächlich dazu verwendet, geografische Inhaltsbeschränkungen zu umgehen. Wenn du zum Beispiel ein Video ansehen möchtest, das in deiner Region blockiert ist, kannst du einen Forward-Proxy mit einer IP-Adresse verwenden, auf der das Video zum Ansehen verfügbar ist.

Ein Forward-Proxy funktioniert fast genauso wie ein Virtual Private Network (VPN), aber es handelt sich dabei um unterschiedliche Technologien mit einzigartigen Anwendungsfällen (sie können sich jedoch manchmal überschneiden).

Reverse Proxy Server vs. Forward Proxy Server

Ein Reverse-Proxy-Server fungiert als Front für den Herkunftsserver, um die Anonymität zu wahren und die Sicherheit zu erhöhen, genau wie ein Benutzer/Client einen Forward-Proxy verwenden kann, um dasselbe zu erreichen. Es stellt sicher, dass kein Benutzer oder Client direkt mit dem Herkunftsserver kommuniziert.

Wie ein Reverse-Proxy-Server funktioniert
Wie ein Reverse-Proxy-Server funktioniert

Der Unterschied zwischen einem Forward-Proxy und einem Reverse-Proxy ist gering, aber sie funktionieren unterschiedlich.

Beide können zusammen arbeiten, da es keine Überschneidungen zwischen ihren Funktionen gibt. Normalerweise benutzen Benutzer/Clients einen Forward-Proxy, während die Herkunftsserver einen Reverse-Proxy benutzen.

Forward Proxy vs Reverse Proxy Server
Forward Proxy vs Reverse Proxy Server

Da ein Serveradministrator kontrollieren kann, wie der Reverse Proxy funktioniert, kannst du es benutzen, um viele nützliche Funktionen zu aktivieren.

Wir werden alle seine Vorteile später in diesem Beitrag auflisten.

Warum einen Reverse Proxy benutzen?

Viele Unternehmen, vor allem Großunternehmen, verwenden maßgeschneiderte Webseiten, die auf ihre individuellen Bedürfnisse zugeschnitten sind und nicht auf WordPress laufen. Einige Beispiele sind Webseiten von Banken und Versicherungen.

In anderen Fällen kann es vorkommen, dass ein Unternehmen seine Webseite bei einem externen Service hostet, der es ihm nicht erlaubt, externe Software zu installieren (z.B. WordPress). Normalerweise handelt es sich dabei um kleine bis mittelgroße Einzelhändler, die eine E-Commerce-Plattform wie Shopify nutzen.

Da WordPress über robuste CMS-Funktionen verfügt, ziehen es viele Unternehmen, einschließlich großer Unternehmen mit maßgeschneiderten Webseiten, vor, ihre Blogs mit WordPress zu hosten.

Eine Möglichkeit, dieses Problem zu umgehen, besteht darin, WordPress auf der Subdomain der Haupt-Website zu installieren und die Navigationsmenüs so zu strukturieren, dass die Nutzer leicht zwischen der Haupt-Webseite und dem Blog wechseln können.

Da Subdomains sich wie eine einzigartige Domain verhalten, kann es das SEO deiner Webseite beeinflussen. Auch wenn Google sowohl Subdomains als auch Unterverzeichnisse gleich behandelt, ist es aufwändiger, eine Webseite für das Suchmaschinen-Ranking zu optimieren, wenn sie auf einer Subdomain gehostet wird, als wenn sie in einem Unterverzeichnis gehostet wird.

Zwei Ansätze für das Hosting von Blogs auf einer Webseite
Zwei Ansätze für das Hosting von Blogs auf einer Webseite

Google hat erneut bestätigt, dass es sowohl Subdomains als auch Unterverzeichnisse gleich behandelt, aber einige SEO-Experten sind damit nicht einverstanden. Und selbst wenn es sich nicht auf das SEO der Webseite auswirkt, ist eine Webseite, die in einem Unterverzeichnis gehostet wird, einfach einfacher zu pflegen.

Aus diesem Grund kannst du einen Reverse Proxy verwenden, um Anfragen an das auf einem separaten Server gehostete Blog der Webseite umzuleiten. Zum Beispiel kann eine Bank ihre Haupt-Website sicher auf ihren Servern hosten, aber sie kann auch ihren WordPress-basierten Blog separat auf einem verwalteten WordPress-Host wie Kinsta hosten.

Ein Beispiel für einen Reverse-Proxy-Anwendungsfall
Ein Beispiel für einen Reverse-Proxy-Anwendungsfall

Zwei verschiedene Webseiten unter einem einzigen Domain-Namen zu vereinen, ist einer der Hauptvorteile der Verwendung eines Reverse Proxy. Es hilft Marken dabei, ihre Webseiten organisiert, professionell und glaubwürdig zu halten.

Vorteile der Verwendung eines Reverse Proxy

Neben dem obigen Anwendungsfall gewähren Reverse Proxies noch viele weitere Vorteile. Im folgenden Abschnitt werden einige ihrer wichtigsten Vorteile besprochen.

Load Balancing

Ein einzelner Herkunftsserver kann nicht den gesamten eingehenden Traffic für eine Webseite mit Millionen von Besuchern täglich verarbeiten. In diesen Fällen kannst du den Traffic geschickt auf einen Pool von vielen Servern verteilen. Normalerweise hosten alle Server den gleichen Inhalt, um einen einzigen Fehler zu vermeiden und die Webseite zuverlässiger zu machen.

Ein Reverse Proxy ist eine gute Möglichkeit, dies einzurichten, da es den eingehenden Traffic empfangen kann, bevor er den Ursprungsserver erreicht. Wenn der Ursprungsserver überlastet ist oder komplett ausfällt, kann es den Traffic auf andere Server verteilen, ohne die Funktionalität der Webseite zu beeinträchtigen.

Reverse Proxies können die eingehenden Anfragen auch auf mehrere Server leiten, wobei jeder Server eine bestimmte Funktion ausführt, für die er optimiert ist. Der Reverse-Proxy kann dann Antworten von allen Servern sammeln und an den Client liefern.

Da wir die meisten der beliebten Reverse Proxies hauptsächlich zum Lastausgleich verwenden, werden sie auch als Load Balancer bezeichnet.

Globaler Server-Lastausgleich (GSLB)

GSLB ist eine fortschrittliche Lastverteilungsmethode zur Verteilung des Website-Traffics auf viele strategisch günstig gelegene Server auf der ganzen Welt. Es wird typischerweise über eine Anycast-Routing-Technik durchgeführt, bei der der Reverse-Proxy den Serverknoten anhand der schnellsten Reisezeit zwischen dem Client und dem Server auswählt.

GSLB erhöht nicht nur die Zuverlässigkeit und Sicherheit der Webseite beträchtlich, es reduziert auch die Latenzzeit und die Ladezeiten und verbessert so die Benutzererfahrung. Du kannst GSLB mit anderen Netzwerkoptimierungstechniken wie z.B. Spoon Feeding verwenden, um die Rechenressourcen der Herkunftsserver noch mehr zu entlasten.

Obwohl du Global Server Load Balancing manuell auf deinem Server einrichten kannst, wird es normalerweise von dedizierten CDNs wie Cloudflare und KeyCDN (das auch Kinsta CDN betreibt) erledigt. Kinsta bedient alle Webseiten, die bei ihm gehostet werden, über einen Load Balancer, der von der Google Cloud Platform betrieben wird.

Verbesserte Sicherheit

Reverse Proxies können die IP-Adresse und andere Merkmale der Herkunftsserver verschleiern. Auf diese Weise kann der Herkunftsserver deiner Webseite seine Anonymität besser wahren, was seine Sicherheit deutlich erhöht.

Da der Reverse Proxy den gesamten Traffic empfängt, bevor er den Hauptserver erreicht, wird es für Angreifer oder Hacker schwieriger, deine Webseite mit Sicherheitsbedrohungen wie DDoS-Angriffen anzugreifen.

Du kannst eine strenge Firewall verwenden, um den Reverse Proxy mit einer höheren Sicherheit gegen die üblichen Cyber-Angriffe zu schützen. Ohne einen installierten Reverse Proxy ist es schwierig, Malware zu entfernen oder Takedowns zu starten.

Ein Reverse-Proxy wie HAProxy kann eine einfache HTTP-Zugangsauthentifizierung zu einem Webserver hinzufügen, der es nicht aktiviert hat. Du kannst auch einen Reverse-Proxy verwenden, um eine zentralisierte Authentifizierung für verschiedene Arten von Anfragen hinzuzufügen.

Leistungsstarkes Caching

Du kannst einen Reverse-Proxy für Webbeschleunigungszwecke verwenden, indem du sowohl statische als auch dynamische Inhalte zwischenspeicherst. Dies kann die Belastung des Ursprungsservers reduzieren, was zu einer schnelleren Webseite führt.

Zum Beispiel, wenn dein Herkunftsserver in den USA ist und ein Benutzer aus Europa deine Webseite besucht, dann kannst du eine gecachte Version deiner Webseite von einem Reverse-Proxy-Server in Europa anbieten. Da der Reverse Proxy näher am Benutzer ist als der Ursprungsserver, wird die Webseite weniger Zeit zum Laden benötigen, wodurch es hervorragend funktioniert.

Varnish und Nginx FastCGI sind prominente Beispiele für Reverse Proxies, die für das Caching von Webinhalten verwendet werden. Wenn deine Webseite bei Kinsta gehostet wird, brauchst du dir um das Caching keine Sorgen zu machen, da Kinsta die ganze Caching-Arbeit für dich übernimmt.

Bessere Komprimierung

Server-Antworten verbrauchen eine Menge Bandbreite. Das Komprimieren von Server-Antworten (z.B. mit gzip), bevor sie an den Client gesendet werden, kann die benötigte Bandbreite reduzieren und die Server-Antworten über das Netzwerk beschleunigen.

Ein Reverse-Proxy ist ideal, um Server-Antworten zu komprimieren, da es zwischen den Ursprungsservern und dem Client sitzt.

Optimierte SSL-Verschlüsselung

Das Verschlüsseln und Entschlüsseln von SSL/TLS-Anfragen für jeden Client kann für den Ursprungsserver sehr anstrengend sein. Ein Reverse-Proxy kann diese Aufgabe übernehmen, um die Ressourcen des Ursprungsservers für andere wichtige Aufgaben freizugeben, wie z.B. das Servieren von Inhalten.

Ein weiterer Vorteil der Auslagerung der SSL/TSL-Verschlüsselung und -Entschlüsselung ist die Reduzierung der Latenzzeit für Clients, die geografisch weit vom Herkunftsserver entfernt sind.

Du kannst dich auch für einen Reverse-Proxy mit spezieller SSL/TLS-Beschleunigungs-Hardware entscheiden, um diese Aufgabe noch weiter zu optimieren. Ein solcher Reverse-Proxy wird SSL/TLS-Terminierungs-Proxy genannt. Einige Server wie Varnish unterstützen keine SSL/TSL-Protokolle, so dass ein SSL/TSL-Terminierungs-Reverse-Proxy helfen kann, den durch sie laufenden Traffic zu sichern.

Bessere A/B-Tests

Für die meisten A/B-Testtools musst du externe JavaScript-Bibliotheken verwenden, um ihre Funktionen zu laden. Das Laden von Skripten von Drittanbietern kann jedoch die Ladezeiten deiner Seite verlangsamen und für die Benutzer ein unruhiges Erlebnis schaffen.

Stattdessen kannst du einen Reverse-Proxy verwenden, um zwei separate Abläufe auf der Serverebene selbst zu erstellen. Du kannst zum Beispiel Nginx‘ split_clients oder sticky route Methoden benutzen, um Traffic umzuleiten.

In den Tutorials von Nginx und freeCodeCamp erfährst du mehr über die Durchführung von A/B-Tests mit einem Reverse-Proxy.

Traffic überwachen und protokollieren

Ein Reverse-Proxy erfasst alle Anfragen, die es durchlaufen. Daher kannst du sie als zentrale Drehscheibe benutzen, um Traffic zu überwachen und zu protokollieren. Selbst wenn du mehrere Webserver verwendest, um alle Komponenten deiner Webseite zu hosten, ist es mit einem Reverse-Proxy einfacher, alle ein- und ausgehenden Daten deiner Webseite zu überwachen.

Die beliebtesten Reverse Proxies

Laut W3Techs verwenden fast 83 % der Webseiten keine Reverse-Proxy-Dienste, die sie überwachen.

Statistik der von Webseiten verwendeten Reverse Proxies
Statistik der von Webseiten verwendeten Reverse Proxies (Quelle: W3Techs.com)

Von den 17% Webseiten, die einen Reverse Proxy verwenden (oben aufgeführt), wirst du feststellen, dass die meisten davon CDNs sind. Das liegt daran, dass die meisten Reverse Proxies ihre Existenz standardmäßig als Sicherheitsvorkehrung verbergen. Daher kannst du dich nicht auf Website-Überwachungsdienste wie W3Techs verlassen, um herauszufinden, welche Reverse Proxies die beliebtesten sind.

Nach unserer Forschung und Erfahrung sind die beliebtesten Reverse Proxies, die heutzutage verwendet werden:

Nginx

Nginx ist ein Open Source Webserver, der auch als Reverse Proxy dienen kann. Abgesehen davon, dass es zum Hosten von Webseiten verwendet wird, ist es auch eine der am weitesten verbreiteten Lösungen für Reverse Proxy und Lastverteilung. Laut Netcraft benutzten im Dezember 2019 über 479 Millionen Webserver Nginx, was es zum Marktführer auf dem Webservermarkt macht.

Marktanteil der Webserver an allen Webseiten
Marktanteil der Webserver an allen Webseiten (Quelle: Netcraft)

Nginx bietet alle oben beschriebenen Vorteile von Reverse Proxy und noch mehr. Es verbessert die Web-Performance, Sicherheit, Zuverlässigkeit und Skalierbarkeit. Bei Kinsta ist der Nginx Reverse Proxy eines von mehreren Premium-Add-Ons, die du nutzen kannst.

Du kannst aber auch Nginx Plus, ein kommerzielles Angebot, nutzen, um Zugang zu API-basierten Konfigurationsoptionen und anderen Funktionen zu erhalten, die für große Unternehmenswebsites geeignet sind.

Kinsta betreibt alle seine Webseiten mit Nginx. Es ist in Review Signal’s Top Tier Webhosting-Status in jeder Kategorie, an der es teilgenommen hat, eingestuft. Einige andere große Unternehmen, die Nginx verwenden, sind MaxCDN, Cloudflare und Netflix.

Nginx als einfachen Reverse-Proxy einzurichten ist einfach. Nginx bietet dir auch verschiedene Richtlinien, um den Reverse-Proxy deines Servers an deine Bedürfnisse anzupassen. Wie das geht, besprechen wir in einem späteren Abschnitt. Wenn du ein Kinsta-Kunde bist, lernst du im selben Abschnitt auch, wie du einen Reverse-Proxy für Webseiten verwendest, die bei Kinsta gehostet werden.

Varnish

Varnish ist ein Open Source HTTP Reverse Proxy mit einer eingebauten Cache-Engine. Es ist hauptsächlich für Webseiten mit hohem Traffic und dynamischen Inhalten gedacht. Du kannst Varnish auch als Loadbalancer, eine Web-App-Firewall (WAF) und einen Edge-Authentifizierungs- und Autorisierungsserver verwenden.

Es funktioniert auf allen modernen Versionen von Linux und FreeBSD und wird hauptsächlich als Front für Nginx- oder Apache-Webserver verwendet. Varnish’s mächtige und sehr flexible Varnish Configuration Language (VCL) erlaubt es dir, verschiedene Funktionen zu definieren, wie z.B. die Behandlung von HTTP-Anfragen, Caching und die Verbindung zu einem oder mehreren Webservern.

Aus diesem Grund verwenden viele CDNs Varnish als Hauptgrundlage für die schnelle Bereitstellung von Inhalten.

Varnish unterstützt auch Edge Side Includes (ESI), eine Sprache, die dir hilft, Abschnitte einer Webseite in anderen Webseiten wiederzuverwenden. Wenn deine Webseite viele sich wiederholende Inhalte in verschiedenen Seiten verwendet, kann ESI dir helfen, die Ladezeiten deiner Webseite zu beschleunigen, indem häufig verwendete Abschnitte zwischengespeichert werden.

Du kannst Varnish mit seinen verschiedenen Modulen (VMODs) erweitern. Im offiziellen Tutorial von Varnish erfährst du, wie du Varnish als Reverse Proxy für WordPress einrichtest.

Apache Traffic Server

Apache Traffic Server ist ein Open Source Caching Proxy Server. Es ist beliebt für seine schnellen, skalierbaren Funktionen. Es war ein kommerzielles Produkt, das vor langer Zeit von Yahoo! entwickelt wurde, aber sie machten es Open Source und spendeten es der Apache Foundation zur Wartung.

Mehrere große Content-Netzwerke und CDNs wie Comcast, Akamai, LinkedIn, Yahoo und Apple verwenden den Apache Traffic Server, um ihre Technologie zu betreiben.

Du kannst auch Apache HTTP Server (Apache httpd), einen HTTP-Server-Daemon, verwenden, um einen Reverse-Proxy auf deinem Webserver einzurichten. Abgesehen davon, dass es als einfacher Webserver fungiert, hilft es dir auch dabei, statische und dynamische Inhalte an Benutzer zu verteilen. Wie du Apache als Reverse-Proxy einrichtest, erfährst du später in diesem Artikel.

HAProxy

HAProxy ist ein Open Source Reverse Proxy und Load Balancer. Es ist so konzipiert, dass es sich in die meisten existierenden Webserver-Architekturen integrieren lässt, einschließlich Linux-Distributionen und Cloud-Plattformen. Ähnlich wie Nginx verwendet HAProxy ein ereignisgesteuertes E/A-Modell und unterstützt die Aufteilung von Anfragen auf mehrere Worker-Prozesse.

Für HTTP-Anfragen arbeitet HAProxy auch unter hoher Last außergewöhnlich gut. Einige der Webseiten mit dem höchsten Traffic im Internet wie Airbnb, Reddit, Instagram, Stack Overflow, Tumblr, GitHub und Imgur verwenden HAProxy, um ihre Webseiten effizient auszuliefern.

Zu diskutieren, wie man HAProxy implementiert, würde den Rahmen dieses Artikels sprengen, aber du kannst in deren Dokumentation nachschlagen, um zu verstehen, wie es funktioniert.

Hinweis: Traefik und Envoy sind zwei weitere Open Source Alternativen zu HAProxy. Sie sind beide hochperformante Reverse-Proxies und Loadbalancer mit vielen erweiterten Funktionen.

Einige andere beliebte Reverse Proxies sind AWS Elastic Load Balancer, GLBC, DigitalOcean Load Balancer und Google Cloud Load Balancer. Für eine vollständige Liste der beliebtesten Reverse Proxies und Load Balancer, die heute verwendet werden, kannst du dir Stackshare.io ansehen.

Umgekehrter Proxy: Use Cases für WordPress Seiten

Es gibt hauptsächlich drei Anwendungsfälle für den Einsatz eines Reverse Proxy für WordPress Seiten, einschließlich der Seiten, die bei Kinsta gehostet werden.

Laden einer 'Hauptseite' gegen eine 'Proxyseite'.
Laden einer ‚Hauptseite‘ gegen eine ‚Proxyseite‘.

Wir werden für dieses Beispiel nur Nginx verwenden, da es der beliebteste Reverse Proxy ist, der heutzutage für WordPress Seiten verwendet wird. Aber die gleichen Grundprinzipien werden auch für andere Reverse Proxies gelten.

Reverse Proxies sind oft eine Herausforderung bei Installation, Konfiguration und Support. Aus diesem Grund bietet Kinsta für jeden Reverse Proxy, bei dessen Einrichtung du Hilfe benötigst, ein monatliches Add-on-Abonnement für $50 an. Für weitere Details kannst du dich an das Support-Team von Kinsta wenden.

1. Haupt- und Proxyseiten, die auf dem gleichen Server gehostet werden

Wenn sowohl die Haupt- als auch die Proxyseite auf demselben Server gehostet werden, kann die Hauptseite auf einer WordPress-Installation laufen, während eine separate WordPress-Installation die Proxyseite betreibt.

Da du Zugriff auf beide Webseiten und ihren gemeinsamen Webserver hast, kannst du die Reverse-Proxy-Regeln für die Hauptseite einrichten und dann die gextete Seite so konfigurieren, dass sie vom Reverse-Proxy geladen wird.

Wenn du diese beiden Webseiten bei Kinsta hostet, kannst du dich an das Support-Team von Kinsta wenden und sie bitten, den Reverse-Proxy für dich einzurichten. Hier ist das Verfahren, das du befolgen musst:

  • Stelle sicher, dass sowohl die Haupt- als auch die Proxyseite bei Kinsta gehostet werden. Wenn das nicht der Fall ist, dann kannst du beide Webseiten auf die Kinsta-Umgebung migrieren, entweder manuell oder indem du einen Migrationsantrag stellst.
  • Öffne ein Support-Ticket und gib dem Support-Team von Kinsta eine klare Beschreibung der Domain-Konfiguration. Ich brauche ungefähr einen Arbeitstag, um den Reverse-Proxy einzurichten.
  • Kinsta wird die entsprechenden Reverse-Proxy-Regeln auf der Hauptseite einrichten und die geproxte Webseite so konfigurieren, dass sie über den Reverse-Proxy lädt.

Hier sind die Standard-Nginx-Reverse-Proxy-Direktiven, die Kinsta benutzt, um eine Webseite mit Unterverzeichnissen über einen Reverse-Proxy zu laden:

location ^~ /subfolder/ {
proxy_pass http://subfolder.domain.com;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}

Im obigen Code musst du den Platzhalter /subfolder/ durch den tatsächlichen Namen des Unterverzeichnisses ersetzen (z.B. /blog/, /shop/). Außerdem sollte die Subdomain http://subfolder.domain.com mit der URL übereinstimmen, die verwendet wird, um den Reverse-Proxy auf die gextete Webseite zu verweisen.

Die location-Direktive enthält Caret- und Tilde-Symbole (^~), um Nginx mitzuteilen, dass es, wenn es den definierten String findet, die Suche nach weiteren Übereinstimmungen beenden und die hier aufgeführten Direktiven verwenden soll. Mehr über Nginx‘ Reverse-Proxy-Direktiven findest du in der Dokumentation von Nginx.

Als nächstes musst du die proxied Webseite so konfigurieren, dass sie über den Reverse Proxy lädt. Hier sind die Standardschritte, die Kinsta befolgt, um die proxied Webseite zu konfigurieren:

  • Erstelle ein Unterverzeichnis in dem Pfad, aus dem die gextete Webseite geladen wird. Alle Dateien der gexteten Webseite werden in dieses Unterverzeichnis verschoben.
  • Aktualisiere die Konfigurationsdateien des Webservers, um das neue Unterverzeichnis als Hauptverzeichnis für die proxied Webseite zu definieren. Zusätzlich musst du eine Rewrite-Regel hinzufügen, um das Unterverzeichnis aus der Anfrage-URI für jede eingehende Anfrage zu entfernen.
  • Aktualisiere alle URLs in der Datenbank der proxied Website, damit sie mit den URLs der Live-Site übereinstimmen (z.B. example.com/blog).
  • Bearbeite die Datei wp-config.php der gexynten Webseite mit der $_SERVER['HTTP_HOST'] Definition und zeige es auf die URL der Hauptseite.
  • Wenn du ein SSL-Zertifikat verwendest, dann musst du strikte Regeln in der wp-config.php-Datei definieren, um Umleitungsschleifen zu vermeiden.

Hinweis: Eine geproxte Webseite kann keine URLs erstellen, die das gleiche Unterverzeichnis duplizieren, unter dem die geproxte Webseite geladen wird. Zum Beispiel kann eine proxied Webseite unter example.com/blog keine Seite oder Verzeichnis unter example.com/blog/blog erstellen.

2. Nur die Proxied Webseite, die auf deinem Server gehostet wird

Wenn du nur Zugriff auf die geproxte Webseite und deren Webserver hast, dann musst du den Serveradministrator der Hauptseite kontaktieren und ihn bitten, die Reverse-Proxy-Regeln für dich einzurichten.

Um das zu tun, musst du die gleichen Schritte wie oben beschrieben befolgen, außer dass du in diesem Fall die Regeln auf zwei verschiedenen Servern konfigurieren musst.

Um deine Webseite bei Kinsta zu hosten, füge eine Domain hinzu, die auf den Reverse-Proxy zeigt. Normalerweise eignet sich eine Subdomain für diesen Zweck (z.B. blog.example.com), um die geproxte Webseite über einen Unterverzeichnis-Link (z.B. example.com/blog) zu laden.

Nachdem du deine Proxyseite auf Kinsta eingerichtet hast, kannst du das Support-Team von Kinsta kontaktieren, um die Proxyseite so zu konfigurieren, dass sie über einen Reverse-Proxy geladen wird. Zu diesem Zeitpunkt benötigt unser Support-Team die echte IP deines Servers, um den Einrichtungsvorgang so abzuschließen, dass die Besuche korrekt gezählt werden. Wenn du aufgrund dynamischer IP-Beschränkungen von bestimmten Providern (z.B. AWS CloudFront) keine statische IP angeben kannst, wird dein Plan stattdessen in einen vergleichbaren bandbreitenbasierten Plan umgewandelt.

Schließlich fällt das Einrichten des Reverse-Proxys auf eurem Server nicht in den Bereich des Kinsta-Supports, da sich nur der Server-Admin darum kümmern kann.

3. Nur die Hauptseite wird auf deinem Server gehostet

Wenn du nur Zugriff auf die Hauptseite und ihren Webserver hast, dann solltest du den Reverse-Proxy einrichten und seine Regeln so konfigurieren, dass er die geproxte Webseite von einem externen Host lädt. Die Installation und Konfiguration der gexteten Webseite für das Laden über den Reverse-Proxy liegt in der Verantwortung des Admins des sekundären Servers.

Wenn deine Webseite bei Kinsta gehostet wird, hast du Zugang zu Kinsta’s Support Team. Du kannst ein Support-Ticket bei ihnen einreichen, um die Standardregeln für den Reverse-Proxy hinzuzufügen, die weiter oben in diesem Artikel aufgeführt sind. Du kannst auch zusätzliche Anpassungen an diesen Regeln vornehmen lassen, falls nötig.

In diesem Szenario bist du vollständig dafür verantwortlich, die gextete Webseite so zu konfigurieren, dass sie korrekt über den Reverse-Proxy geladen wird.

Wie man Nginx als Reverse Proxy einrichtet

Wenn Kinsta deine Webseite nicht hostet und du deine Server verwaltest, dann musst du den Reverse Proxy selbst einrichten und es so konfigurieren, dass es auf die geproxte Webseite zeigt.

Abhängig vom Betriebssystem deines Webservers kannst du Nginx unterschiedlich installieren. Für Linux-Distributionen kannst du verschiedene Nginx-Pakete verwenden, je nach der Version deiner Linux-Distribution.

In dem Beispiel unten haben wir die primäre Webseite unter dem Domainnamen example.com installiert, während die proxied WordPress Seite unter der Subdomain blog.domain.com installiert ist. Beide werden von Apache auf einem Webserver betrieben, der auf Ubuntu 18.04 läuft. Wir werden Nginx als Reverse-Proxy auf dem Hauptserver installieren und konfigurieren.

Um zu beginnen, greife über SSH auf das Terminal deines Servers zu. Benutze dann den Befehl apt-get, um die Paketliste deiner Distribution zu aktualisieren und installiere Nginx auf deinem Webserver.

sudo apt update
sudo apt install nginx

Als nächstes musst du Nginx für Proxy-Anfragen für Domains konfigurieren, die auf Apache gehostet werden. Um das zu tun, erstelle eine neue virtuelle Hostdatei. Hier benutze ich den Nano-Editor, um den Code hinzuzufügen, aber du kannst jeden Code-Editor deiner Wahl benutzen.

sudo nano /etc/nginx/sites-available/example.com.conf

Dann setze Nginx-Direktiven, um Anfragen an Apache weiterzuleiten, indem du die folgenden server {...} und location blöcke hinzufügst:

server {
listen      80;
server_name example.com www.example.com;
index       index.php;
root        /var/www/example.com/public    # fallback for index.php
location / {
try_files $uri $uri/ /index.php?$query_string;
}location /blog {
proxy_pass http://blog.domain.com;proxy_http_version                 1.1;
proxy_cache_bypass                 $http_upgrade;

# Proxy headers
proxy_set_header Upgrade           $http_upgrade;
proxy_set_header Connection        "upgrade";
proxy_set_header Host              $host;
proxy_set_header X-Real-IP         $remote_addr;
proxy_set_header X-Forwarded-For   $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host  $host;
proxy_set_header X-Forwarded-Port  $server_port;

# Proxy timeouts
proxy_connect_timeout              60s;
proxy_send_timeout                 60s;
proxy_read_timeout                 60s;
}

Im obigen Code definiere ich ein Unterverzeichnis example.com/blog link, das vom Apache-Server bedient wird. Stelle sicher, dass du die öffentliche IP-Adresse (oder URL) deiner proxydrierten Webseite in der proxy_pass Direktive verwendest. In meinem Fall wird meine gextete Webseite auf der Subdomain blog.domain.com gehostet.

Hinweis: Stelle sicher, dass die geproxte Webseite installiert und betriebsbereit ist, bevor du irgendwelche Änderungen vornimmst.

Du kannst mehr über alle Reverse-Proxy-Direktiven erfahren, die hier in Nginx‘ detailliertem Index der Direktiven verwendet werden.

Speichere die Datei des virtuellen Hosts. Dann aktiviere den neuen virtuellen Host, indem du einen Symlink für die Dateien namens example.com.conf in den Verzeichnissen /etc/nginx/sites-available und /etc/nginx/sites-enabled erstellst.

sudo ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/example.com.conf

Danach solltest du Nginx auf Konfigurationsfehler testen.

sudo nginx -t

Wenn es keine Fehler gibt, lade Nginx neu, um die Änderungen zu erzwingen.

sudo systemctl reload nginx

Du hast Nginx jetzt erfolgreich als Reverse-Proxy eingerichtet. Um dies zu bestätigen, kannst du die Funktion phpinfo() benutzen, um die PHP-Variablen zu überprüfen, die geladen werden, wenn du deine Webseite besuchst.

Unter den PHP-Variablen SERVER_SOFTWARE und DOCUMENT_ROOT siehst du, dass der Apache diese Domain im Backend bedient. Aber die PHP-Variablen HTTP_X_REAL_IP und HTTP_X_FORWARDED_FOR bestätigen, dass Nginx als Reverse-Proxy verwendet wurde, um die Anfragen weiterzuleiten.

Du kannst die Bedienung deiner Webseite für WordPress über Nginx beschleunigen, indem du die fastcgi_cache und ngx_cache_purge Module benutzt. Während das erste Modul deine Webseite in den Cache stellt, wird das zweite Modul den Cache automatisch leeren, abhängig von bestimmten Ereignissen (z.B. das Veröffentlichen oder Editieren eines WordPress Posts/einer WordPress Seite).

Du kannst das Nginx Cache Controller WordPress Plugin benutzen, um den Proxy Server Cache von Nginx direkt von deinem WordPress Dashboard aus zu steuern. Wenn du eine Multisite-WordPress-Installation verwendest, kannst du das Nginx Helper-Plugin verwenden, um dasselbe zu tun.

In der Hauptdokumentation von Nginx und in der Installationsanleitung von Nginx WordPress findest du einen detaillierten Überblick über die Arbeit mit Nginx und WordPress.

Wie man Apache als Reverse Proxy einrichtet

Bevor du anfängst, stelle sicher, dass du zwei Webseiten hast, die auf example.com und blog.domain.com laufen. Die erste Webseite kann eine WordPress Seite sein oder auch nicht, aber die zweite Webseite sollte eine WordPress Seite sein, da sie hauptsächlich zum Laden des Blogs der Root-Domain unter example.com/blog subdirectory link verwendet wird.

Beginne mit der Konfiguration von Apache, indem du das Terminal deines Servers per SSH öffnest und das Proxy-Modul von Apache aktivierst.

sudo a2enmod proxy proxy_http ssl

Das Ausführen des obigen Befehls wird höchstwahrscheinlich den Apache neu starten, um die neu definierten Direktiven neu zu laden.

Als nächstes editierst du die Datei mit den virtuellen Hosts deines Hauptservers, um einen Reverse-Proxy zu erstellen. Hier ist der Code, den du hinzufügen musst:


DocumentRoot /var/www/app/public
SSLProxyEngine On    ProxyRequests off
ProxyPass /blog http://blog.domain.com
ProxyPassReverse /blog  http://blog.domain.com

Die ProxyPass-Direktive wird einen Reverse-Proxy für die angegebenen Pfade erstellen, während die ProxyPassReverse-Direktive die HTTP-Antwort-Header, die durch diesen Reverse-Proxy gesendet werden, abfangen und neu schreiben wird, damit sie mit dem Apache-Server übereinstimmen.

Nachdem du die Datei gespeichert hast, musst du deine wp-config.php-Datei editieren, indem du den folgenden Code direkt vor der Zeile hinzufügst, die dich auffordert, mit dem Editieren aufzuhören.

# ProxyPass Settings
# overrides the variables below to ensure that any
# request to /blog/* subdirectory is taken care of properly
$_SERVER['REQUEST_URI'] = '/blog' . $_SERVER['REQUEST_URI'];
$_SERVER['SCRIPT_NAME'] = '/blog' . $_SERVER['SCRIPT_NAME'];
$_SERVER['PHP_SELF'] = '/blog' . $_SERVER['PHP_SELF'];

Schließlich musst du noch die Datenbank deiner Webseite für WordPress aktualisieren, um die Konfigurationswerte für den Link zum Unterverzeichnis /blog hinzuzufügen. Dazu musst du die folgende SQL-Abfrage ausführen:

UPDATE wp_options SET option_value = 'https://www.example.com/blog' WHERE option_name IN( 'siteurl', 'home' );

Du solltest jetzt in der Lage sein, die URL https://www.example.com/blog zu besuchen und deine Webseite auf der Subdomain http://blog.domain.com hosten zu lassen, ohne die URL zu ändern. Du kannst weiterhin wie gewohnt WordPress benutzen, um deine Webseite zu durchsuchen, zu schreiben, zu bearbeiten und zu verwalten.

Grenzen eines Reverse Proxy

  • Ein Reverse-Proxy stellt ein erhebliches Sicherheitsrisiko dar, da er den gesamten Traffic, der durch ihn hindurchgeht, lesen und verändern kann. Wenn du HTTPS Traffic durch den Reverse Proxy lädst, dann muss es die durchlaufenden Daten entschlüsseln und neu verschlüsseln. Das bedeutet, dass es die privaten Schlüssel des SSL/TLS-Zertifikats besitzen muss. Wenn also eine böswillige Partei deinen Reverse-Proxy kompromittieren kann, kann sie Passwörter protokollieren und Malware in deine Webseiten einschleusen.
  • Wenn du oder deine Benutzer nicht direkt auf deinen Hauptserver zugreifen können, dann kann die Verwendung eines Reverse-Proxys zu einem Single Point of Failure führen. Wenn du zum Beispiel einen Reverse-Proxy als Vorwand verwendest, um mehrere Domains zu bedienen, dann kann es bei einem Ausfall dazu führen, dass alle Domains gleichzeitig offline gehen.
  • Wenn du dich auf einen Reverse-Proxy eines Drittanbieters verlässt (z.B. Cloudflare), dann gibst du die sensiblen Informationen deiner Webseite an diesen weiter. Solange sie vertrauenswürdig sind, kannst du nicht vorhersagen, wohin es führen kann.
  • Das Wiederherstellen von Backups oder das Pushen von Staging-Sites live auf Webseiten, die über einen Reverse-Proxy laden, kann dazu führen, dass die geproxte Webseite nicht mehr richtig geladen wird.

Auswahl zwischen einem CDN und einem Reverse Proxy

CDNs sind eine fortgeschrittene Form von Reverse Proxy, bei der der Großteil der Konfiguration und Wartung von einem Dritten übernommen wird. Sie können mit geringem Aufwand von deiner Seite aus erstaunliche Leistungsvorteile für deine WordPress Seite bieten.

Nicht nur, dass CDNs Inhalte zwischenspeichern und sie den Benutzern schnell zur Verfügung stellen, sie reduzieren auch die Last auf deinen Ursprungsservern, senken die Bandbreitenkosten, bieten eine zusätzliche Sicherheitsebene, verbessern das SEO deiner Webseite und helfen dir, deine Webseite besser zu skalieren.

Du wirst feststellen, dass die meisten Vorteile von CDNs die gleichen sind wie die von Reverse Proxies. Solltest du also ein CDN einem Reverse Proxy vorziehen oder umgekehrt?

Es gibt keinen Grund, dass du dich mit nur einem zufrieden geben musst. Wenn du bereits einen Reverse Proxy installiert hast, wirst du immer noch Geschwindigkeits- und Leistungsgewinne durch die Nutzung eines CDNs sehen. Die beiden Caches sind sehr übersichtlich, und wenn du besondere Anforderungen an die Bearbeitung von Anfragen hast (z.B. dynamische Inhalte, E-Commerce), dann kannst du es einfach mit einigen benutzerdefinierten Headern konfigurieren, die vom CDN oder dem Reverse-Proxy weitergeleitet werden.

Zusammenfassung

WordPress ist sehr flexibel. Du kannst es als Blog, als E-Commerce Webseite oder sogar als Learning Management System verwenden. In den meisten Fällen kannst du WordPress an deine individuellen Bedürfnisse anpassen.

Manchmal musst du jedoch eine separate Domain oder einen sekundären Server verwenden, um eine zusätzliche Webseite zu hosten. Wie bereits erwähnt, kann es daran liegen, dass für eine große Unternehmenswebsite andere Technologien verwendet werden oder dass ein WordPress-Blog für eine bereits existierende, nicht WordPress-Seite gestartet wird.

In beiden Fällen kann ein Reverse-Proxy helfen, der dir hilft, das Beste aus WordPress herauszuholen, ohne die Haupt-Webseite aufzugeben und von vorne anzufangen.

Salman Ravoof

Salman Ravoof is a self-taught web developer, writer, creator, and a huge admirer of Free and Open Source Software (FOSS). Besides tech, he's excited by science, philosophy, photography, arts, cats, and food. Learn more about him on his website, and connect with Salman on Twitter.