Ist es möglich, Apache so zu konfigurieren, dass es sowohl als statischer Webserver als auch als Load Balancer auf demselben Port fungiert?

Ist es möglich, Apache so zu konfigurieren, dass es sowohl als statischer Webserver als auch als Load Balancer auf demselben Port fungiert?

Ich verwende Apache 2.4.7 auf einem Windows 2016-Server als Lastenausgleich zwischen einigen Spring Boot REST-Anwendungen, die <VirtualHost *:8000>Abschnitt verwenden. Das funktioniert gut.

Ich habe jedoch auch eine Angular-Einzelseitenanwendung und möchte deren Dateien (HTML, CSS, JS usw.) auf demselben Apache-Server hosten. Ich muss dieselbe Portnummer verwenden 8000, da die Angular-Anwendung die REST-Aufrufe durchführt, andernfalls erhalte ich einen CORS-Fehler.

Meine Frage lautet: Wie kann ich Apache so konfigurieren, dass es sowohl ein statischer Webserver als auch ein Load Balancer auf demselben Port ist?

Antwort1

Ich bin mir nicht sicher, wie Sie Ihr Setup und Ihre Details einrichten, aber im Allgemeinen möchten Sie Folgendes einrichten undApache Reverse Proxy. Sie müssen keinen neuen Port oder ähnliches konfigurieren. In den offiziellen Apache-Dokumenten heißt es dazu:

Apache httpd (sowie die meisten anderen Webserver) kann nicht nur ein „einfacher“ Webserver sein, der Endbenutzern statische und dynamische Inhalte zur Verfügung stellt, sondern auch als Reverse-Proxy-Server (auch „Gateway-Server“ genannt) fungieren.

In solchen Szenarien generiert oder hostet httpd die Daten nicht selbst, sondern der Inhalt wird von einem oder mehreren Backend-Servern abgerufen, die normalerweise keine direkte Verbindung zum externen Netzwerk haben. Wenn httpd eine Anfrage von einem Client empfängt, wird die Anfrage selbstgeproxiedan einen dieser Backend-Server, der dann die Anfrage verarbeitet, den Inhalt generiert und diesen Inhalt dann an httpd zurücksendet, das dann die eigentliche HTTP-Antwort an den Client zurück generiert.

Was Sie in Ihrem Fall über Apache wissen müssen, ist, dass Sie Pfade und Verzeichnisse so konfigurieren können, dass sie sich in Apache auf bestimmte Weise verhalten. Eine URL kann also entweder für bestimmte Konfigurationen und Verhaltensweisen verwendet oder sogar ignoriert werden.

Weitere Einzelheiten zur Konfiguration eines Apache Reverse Proxy finden Sie unterSchauen Sie sich diese Antwort an, die ich auf Server Fault gepostet habe.

verwandte Informationen