Einleitung / Intro #
Ein Proxy-Server ist ein Servergerät oder eine Anwendung, die Anfragen von Kunden oder Clients an verschiedene Server weiterleitet, die Ressourcen bereitstellen. Das bedeutet, dass ein Proxy-Server im Auftrag des Kunden oder Clients agiert, wenn ein Dienst angefordert wird, und dabei möglicherweise den tatsächlichen Ursprung der Anfrage an den Server verschleiert.
Der Client sendet seine Anfrage direkt an den Proxy-Server, anstatt sich nur mit einem konkreten Server zu verbinden, der die angeforderte Ressource (z. B. Dateien oder Webseiten) bereitstellen kann. Der Proxy-Server wertet die Anfrage aus und führt die erforderlichen Netzwerk-Transaktionen durch. Dadurch wird die Komplexität der Anfrage vereinfacht und kontrolliert. Zudem bietet dies Vorteile wie Sicherheit, schnellere Inhaltsbereitstellung und besseren Datenschutz. Proxys dienen der Kapselung und Strukturierung bestehender verteilter Systeme. Zu den am häufigsten verwendeten Web-Navigations-Proxys gehören Squid , Privoxy und SwiperProxy.
Manchmal reicht ein Proxy-Server nicht aus, um die Anzahl gleichzeitiger Benutzer zu bewältigen, oder der Proxy selbst stellt einen Single Point of Failure dar , der behoben werden muss. In solchen Fällen ist ein ADC unbedingt erforderlich.
Der folgende Artikel beschreibt eine Möglichkeit zum Erstellen einer hohen Verfügbarkeit und Skalierbarkeit für einen Navigationsproxydienst. Falls einer der Proxyserver ausfällt, erkennt der mit dem Relianoid Application Delivery Controller implementierte Lastenausgleich den Fehler und deaktiviert den Proxy aus dem verfügbaren Pool. Zusätzlich wird der Client zu einem anderen verfügbaren Navigationsproxy umgeleitet, ohne dass die Verkehrsverbindungen beeinträchtigt werden.
Proxy-Netzwerkarchitektur #
Um dem Leser ein besseres Verständnis der Konfiguration zu vermitteln, möchten wir erreichen, dass das folgende Diagramm die Architektur beschreibt.
Verschiedene Clients (Laptops, Computer, Mobiltelefone und Tablets) konfigurieren ihren Browser so, dass er auf den Unternehmensproxy verweist, z. B. https://proxy.company.com:3128 . Alle Verbindungen der Clients zum Web-Navigationsproxy, ob unverschlüsseltes HTTP oder SSL , basieren auf TCP und werden daher für den Aufbau unserer Load-Balancing-Farm verwendet.
Die IP-Auflösung für proxy.company.com ist eine virtuelle IP-Adresse , die bereits im Load Balancer konfiguriert ist. Im Relianoid Application Delivery Controller existiert eine Serverfarm über diese virtuelle IP-Adresse, z. B. 192.168.103.34 , und den virtuellen Port 3128 im NAT- Modus für das TCP- Protokoll.
Die Farm ist mit allen Backends konfiguriert, die den Navigationsproxy-Pool bilden, in unserem Beispiel 192.168.103.253 und 192.168.103.254 über TCP-Port 3128. Sobald ein Client versucht, eine Verbindung zum konfigurierten Proxy herzustellen, empfängt der ADC die Verbindung und leitet sie an einen der verfügbaren Navigationsproxys im Pool weiter, wodurch die Benutzer auf alle verfügbaren Backend-Proxyserver verteilt werden.
Konfiguration der Hochverfügbarkeit des Webnavigationsproxys #
Der folgende Abschnitt beschreibt das Konfigurationsverfahren zum Erstellen einer geeigneten Konfiguration für den Lastenausgleich von Navigations-Proxys im Relianoid-Load Balancer.
Integritätsprüfung des Webnavigations-Proxys #
Erstellen Sie zunächst eine Integritätsprüfung für die Verwendung in der Lastausgleichsfarm, die wir in den folgenden Zeilen erstellen werden. Ziel dieser neuen Integritätsprüfung ist es, zu überprüfen, ob der TCP-Port in den Backend-Proxys aktiviert ist.
Gehen Sie zu Abschnitt ÜBERWACHUNG > Farm Guardian , erstellen Sie einen neuen Farm Guardian mit dem Namen check_tcp_navigation_proxy und kopieren Sie die Timeout-Einstellungen von check_tcp. Nehmen Sie anschließend einige kleine Änderungen an den Timeout-Einstellungen vor, wie unten gezeigt:
Fügen Sie im Feld „Befehl“ das Flag „-t 5“ hinzu . Dies ist das Timeout pro Backend für die Antwort auf die TCP-Verbindung vom Load Balancer. Das Feld „ Intervall“ ist auf 11 konfiguriert, 5 Sekunden pro Backend plus 1 zusätzliche Sekunde, um Rekursionen zu vermeiden. Wir empfehlen, die folgende Formel zu verwenden, um den optimalen Intervallwert festzulegen.
(Anzahl der Backends * Timeout-Sekunden pro Backend (-t)) + 1
Virtueller Webnavigations-Proxy-Dienst #
Erstellen Sie anschließend eine LSLB > L4xNAT -Farm, z. B. mit dem Namen „navigation_proxy“ , einschließlich der virtuellen IP-Adresse und des virtuellen Ports wie im vorherigen Diagramm dargestellt. Wechseln Sie nach der Erstellung in den Bearbeitungsmodus (erweitert ) und stellen Sie sicher, dass der Protokolltyp auf TCP und der NAT-Typ auf NAT- Modus eingestellt ist.
Um das Verhalten des virtuellen Dienstes zu konfigurieren, gehen Sie zum Tab „Dienste“ und legen Sie unter „Gewichtung “ (Standardeinstellung) den Lastverteilungsalgorithmus fest . Passen Sie diesen Wert bitte an Ihre Umgebung und das gewünschte Verhalten an.
Gehen Sie dann im selben Abschnitt zur Tabelle „ Backends“ und fügen Sie die eigentlichen Webnavigations-Proxyserver hinzu, die die Verbindungen der Benutzer verwalten.
Wählen Sie abschließend den im vorherigen Schritt erstellten Health Check mit dem Namen check_tcp_navigation_proxy aus , um zu überprüfen, ob der TCP- Backend-Port bereits geöffnet ist.
Jetzt kann der virtuelle Dienst mit Lastenausgleich getestet werden, bevor die Clients konfiguriert werden.
Client-Konfiguration #
Der letzte Schritt besteht darin, die Proxy-Einstellungen im Webbrowser des Clients so zu konfigurieren, dass sie auf die virtuelle IP-Adresse und den virtuellen Port verweisen , die im Load Balancer verwendet werden, oder die virtuelle IP-Adresse im kooperativen DNS einzutragen und stattdessen einen Namen auf den Clients zu verwenden (in unserem Beispiel verweist proxy.example.com auf die virtuelle IP-Adresse 192.168.103.34 ).
Genießen Sie schließlich Ihren lastausgeglichenen Web-Navigations-Proxy mit hoher Verfügbarkeit!



