Einführung
Erweiterungen von Drittanbietern sind äußerst hilfreiche Ergänzungen. Diese machen Ihre Erfahrung bei der Konfiguration und Arbeit mit einem Server, wie z. B. Apache HTTP, viel einfacher und komfortabler. Bei Bedarf können Sie sogar einige dieser Module in Apache verwenden, um einen Reverse Proxy zu betreiben. Sie können entweder eine Ebene aus Ihrem Server-Setup entfernen oder ein Modul verwenden, um die Verbindungen umzuleiten.
In dieser Anleitung werden wir uns mit Apache und den verschiedenen Modulen befassen, die mit der Serverplattform verbunden sind, wie z. B. mod_proxy. Wir werden auch sehen, wie Sie es als Reverse Proxy verwenden können, um Verbindungen zu Ihren Backend-Anwendungsservern umzuleiten.
Was ist Apache?
Apache ist ein HTTP-Server der sehr häufig für webbezogene Zwecke verwendet wird. Sie können ihn jedoch für eine Vielzahl von Gründen und über mehrere Plattformen hinweg einsetzen. Sie können Ihren Apache-Webserver auf Ubuntu installieren, indem Sie unserer Schritt-für-Schritt-Anleitung folgen. Folgen Sie außerdem diesem Tutorial, um zu erfahren, wie Sie Ihren Apache-Server mit Let’s Encrypt sichern. Sie können sich auch ansehen, wie Sie virtuelle Apache-Hosts auf Ubuntu 20.04 einrichten.
Sie können die Funktionen und die Implementierung von Apache mithilfe externer Module weiter erkunden. Dabei handelt es sich um Module von Drittanbietern, mit denen Sie verschiedene Aufgaben im Zusammenhang mit Verbindungen und Konfigurationen durchführen können. Beispielsweise können Sie das Modul mod_rewrite verwenden, um regelbasiertes URL-Rewriting durchzuführen. Ein weiteres dieser Module ist mod_proxy. Letzteres Modul wird in der Community weitgehend zu wenig genutzt. Vor allem, weil viele Menschen sich des Umfangs seiner Funktionalität und Anwendungen nicht bewusst sind. Mod_proxy kann Ihnen, wie der Name schon sagt, dabei helfen, ein Gateway oder einen Proxy für Backend-Server einzurichten.
Lassen Sie uns mod_proxy im Detail untersuchen und wie Sie es als Reverse Proxy verwenden können.
Mod_proxy: Verwendung von Apache als Reverse Proxy
Wie Sie wahrscheinlich bereits wissen, ist mod_proxy ein Modul. Es ist ein Modul in Apache, mit dem Sie verschiedene Verbindungen herstellen und umleiten können. Sie können es auch wie jedes andere Modul auf Ihrem System aktivieren und konfigurieren. Das Besondere an mod_proxy is, dass es sich nicht nur um ein einzelnes Modul handelt. Tatsächlich besteht es aus einer Sammlung verschiedener Module, die Sie unten finden. Jedes dieser Module hat seine eigene Funktion. Auf diese Weise bietet Ihnen mod_proxy eine große Funktionsvielfalt.
Werfen Sie einen Blick auf die folgenden mod_proxy-Module:
mod_proxy
Dies ist das Haupt-Proxy-Modul. In Apache können Sie dieses Modul verwenden, um verschiedene Verbindungen zu konfigurieren und zu verwalten. Es kann Ihnen auch dabei helfen, Verbindungen umzuleiten.
mod_proxy_http
Wie der Name schon sagt, befasst sich dieses Modul mit den HTTP- und HTTPS-Protokollen. Sie können dieses Modul verwenden, um die Proxy-Funktionen dieser Protokolle zu implementieren.
mod_proxy_ftp
Mod_proxy_ftp wird verwendet, wenn Sie mit dem FTP-Protokoll arbeiten.
mod_proxy_connect
Dieses Modul ist hilfreich, wenn Sie SSL-Tunneling durchführen.
mod_proxy_ajp
Sie können mod_proxy_ajp verwenden, wenn Sie mit dem AJP-Protokoll arbeiten.
mod_proxy_wstunnel
Dies ist nützlich, wenn Sie mit Web-Sockets wie WS und WSS arbeiten.
mod_proxy_balancer
Wenn Sie auf Lastverteilungs- und Clustering-Funktionen zugreifen möchten, können Sie dieses Modul verwenden.
mod_cache
Das Modul mod_cache ist, wie zu erwarten, für Caching-Zwecke hilfreich.
mod_headers
Sie können dieses Modul verwenden, um die Header zu verwalten, die Sie mit dem HTTP-Protokoll erstellen.
mod_deflate
Dieses Modul wird für Komprimierungszwecke verwendet.
Wenn Sie noch mehr Details über diese Module erfahren möchten, können Sie die offizielle Apache-Website besuchen. Die offizielle Dokumentation bietet Ihnen ebenfalls weitere Informationen über mod_proxy und Apache selbst.
Wie installiert man Apache und mod_proxy?
Hier sind einige einfach zu befolgende Schritte zur Installation von Apache und mod_proxy auf Ihrem System:
- Server vorbereiten
Zunächst müssen Sie sicherstellen, dass Ihr Cloud-Server vorbereitet ist. Dazu müssen Sie Ihr Betriebssystem und die zugehörige Software auf die neuesten Versionen aktualisieren.
Verwenden Sie die folgenden Befehle, um Ihre Anwendungen zu aktualisieren:
|
1 2 3 |
apt install aptitude aptitude update aptitude -y upgrade |
- Installieren des Essentials-Pakets
Sobald Sie Ihren Server vorbereitet haben, müssen Sie ihn mit den wichtigsten Werkzeugen ausstatten. Zu diesem Zweck müssen Sie das Paket build-essential installieren. Dieses Paket besteht aus allen grundlegenden Werkzeugen, die Sie benötigen, um Software aus dem Quellcode zu installieren. Sie können es mit diesem Befehl installieren:
|
1 |
aptitude install -y build-essential |
- Holen Sie sich die Module und Abhängigkeiten
Zuletzt müssen Sie die Module und Abhängigkeiten installieren. Dies können Sie durch Ausführen des folgenden Befehls tun:
|
1 |
aptitude install -y apache2 apache2-bin libxml2-dev |
Module aktivieren: Wie konfiguriert man Apache mit Proxy-Verbindungen?
Bevor Sie überhaupt dazu kommen, Apache zu konfigurieren, müssen Sie Ihre Module aktivieren. Diese Module helfen Ihnen dabei, die notwendigen Konfigurationen vorzunehmen und verschiedene Aufgaben auszuführen.
Zunächst müssen Sie überprüfen, welche Module bereits auf Ihrem System aktiv sind. Darüber hinaus müssen Sie sicherstellen, dass alle Module ordnungsgemäß installiert sind und aktiviert werden können. Das Ausführen dieses Befehls zeigt alle verfügbaren Module auf Ihrem Apache-Server an:
|
1 |
a2enmod |

Wie Sie sehen können, zeigt die Antwort alle verfügbaren Module in Form einer ausführlichen Liste. Durchsuchen Sie diese Liste und bestimmen Sie, welche Module Sie aktivieren möchten. Um dies Apache mitzuteilen, können Sie den folgenden Befehl verwenden und Ihre gewünschten Module anstelle der Beispiele eingeben:
|
1 |
proxy proxy_ajp proxy_http rewrite deflate headers proxy_balancer proxy_connect proxy_html lbmethod_byrequests |
Andererseits können Sie jedes Modul auch einzeln aktivieren. Dazu würden Sie die folgenden Befehle verwenden:
|
1 2 3 4 5 6 7 8 9 10 |
a2enmod proxy a2enmod proxy_http a2enmod proxy_ajp a2enmod rewrite a2enmod deflate a2enmod headers a2enmod proxy_balancer a2enmod proxy_connect a2enmod proxy_html a2enmod lbmethod_byrequests |
Bestimmte Module sind wahrscheinlich standardmäßig auf Ihrem Server aktiviert. Sie fragen sich vielleicht, wie Sie überprüfen können, ob sie aktiviert sind. Um sicherzustellen, dass das gewünschte Modul aktiv ist, können Sie versuchen, es zweimal zu aktivieren. Dies garantiert, dass das Modul aktiviert ist.
- Standard-Konfigurationseinstellungen ändern
Zuerst müssen Sie die Standard-Konfigurationseinstellungen ändern. Dazu müssen Sie auf die Standard-Konfigurationsdatei 000-default.conf zugreifen. Diese Datei befindet sich in /etc/apache2/sites-enabled. Wir müssen sie so anpassen, dass sie die Proxy-Funktion erhält.
Sie beginnen damit, den Texteditor nano zu öffnen, um den standardmäßigen virtuellen Host zu bearbeiten. Dies können Sie durch Ausführen dieses Befehls tun:
|
1 |
nano /etc/apache2/sites-enabled/000-default.conf |
Wir werden den mod_virtual Host und mod_proxy zusammenfassend als Proxy Virtual Host bezeichnen. Nun können Sie die folgenden Konfigurationseinstellungen implementieren. Sie können die notwendigen Änderungen so vornehmen, wie es für Ihr System und Ihre Anforderungen am besten passt:
|
1 2 3 4 5 6 7 |
<VirtualHost *:*> ProxyPreserveHost On ProxyPass / http://0.0.0.0:8080/ ProxyPassReverse / http://0.0.0.0:8080/ ServerName localhost </VirtualHost> |
Sie können speichern und beenden, indem Sie Strg + X drücken und mit Y bestätigen.
- Die Lastverteilungsfunktion aktivieren
Lastverteilung hilft Ihnen, die Verbindungen auf Ihrem Proxy effektiv zu verteilen. Dies ist eine sehr nützliche Idee, wenn Sie mehrere Backend-Anwendungsserver anstelle eines einzelnen verwenden. Die Lastverteilungsfunktion verteilt die Verbindung oder die „Last“.
Um diese Funktion zu aktivieren, müssen Sie die zuvor in dieser Anleitung erwähnten Schritte wiederholen. Sie müssen jedoch die folgenden Konfigurationseinstellungen verwenden, wenn Sie den virtuellen Host einrichten:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<VirtualHost *:*> <Proxy balancer://mycluster> # Back-End-Server definieren: # Server 1 BalancerMember http://0.0.0.0:8080/ # Server 2 BalancerMember http://0.0.0.0:8081/ </Proxy> # VH-Einstellungen nach Wunsch anwenden # Konfigurieren Sie jedoch das ProxyPass-Argument so, # dass "mycluster" zur Lastverteilung verwendet wird ProxyPass / balancer://mycluster </VirtualHost> |
- Reverse-Proxy-Unterstützung aktivieren
Sie müssen einen virtuellen Host so einrichten, dass er Ihren Reverse-Proxy unterstützt, wenn Sie mit SSL-Verbindungen und -Zertifikaten arbeiten. Dieser sekundäre virtuelle Host muss die folgenden Einstellungen aufweisen. Sie müssen die Anweisungen in den vorherigen Schritten ausführen. Sie müssen lediglich die Konfigurationsoptionen durch die unten genannten ersetzen:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
<VirtualHost *:443> SSLEngine On # Pfad zum SSL-Zertifikat festlegen # Verwendung: SSLCertificateFile /pfad/zu/cert.pem SSLCertificateFile /etc/apache2/ssl/file.pem # Server, an die die Verbindung weitergeleitet werden soll, oder; # Liste der Anwendungsserver: # Verwendung: # ProxyPass / http://[IP-Adresse]:[Port]/ # ProxyPassReverse / http://[IP-Adresse]:[Port]/ # Beispiel: ProxyPass / http://0.0.0.0:8080/ ProxyPassReverse / http://0.0.0.0:8080/ # Oder Lastverteilung (Load Balancing): # ProxyPass / balancer://balancer_cluster_name </VirtualHost> |
Sie müssen auch das SSL-Modul aktivieren, damit die obige Konfiguration funktioniert:
|
1 |
sudo a2enmod ssl |
- Apache neu starten
Alle Konfigurationen sind abgeschlossen. Schließlich können Sie Ihren Apache-Server neu starten, um die Änderungen zu übernehmen. Sie können Apache neu starten, indem Sie den folgenden Befehl ausführen:
|
1 |
service apache2 restart |
Fazit
Voila! Sie haben soeben erfolgreich ein Reverse-Proxy-Gateway in Ihrem Apache-Server eingerichtet. Nun wird Apache die eingehenden Verbindungen an Ihre Anwendungsserver im Backend weiterleiten.
Das Tolle daran ist, dass der Konfigurationsprozess wenig Aufwand erfordert und recht unkompliziert ist. Da Sie nun die genauen Schritte kennen, um dorthin zu gelangen, sollten Sie überhaupt keine Probleme haben, einen Reverse-Proxy in Apache einzurichten.
Viel Spaß beim Computing!

Kommentare
Noch keine Kommentare. Schreiben Sie den ersten.