Knowledgebase

Tutorials and guidance for questions about your ServerBase services

Konfiguration des Load Balancers / Reverse Proxy

15. September 2020

Categories

Der in den Edge Gateway integrierte Load Balancer basiert auf HAProxy und ist damit sehr leistungsfähig. Das Webinterface erlaubt eine Konfiguration der meisten Anwendungsfälle. Ist das Einsatzszenario komplexer, können mit der HAProxy-Konfigurationssprache sogenannte Application Rules nach eigenen Bedürfnissen definiert werden. Die Grundkonfiguration des Load Balancers wird anhand eines Lastausgleichs zwischen zwei Webservern nachfolgend erläutert.

Die folgende Terminologie und Logik ist wichtig für das Verständnis der Funktionsweise des Load Balancers:

  • Das Application Profile definiert die Eigenschaften der bereitgestellten Applikation/Service, unter welchem Port sie erreichbar ist, ob SSL verwendet wird und welche Zertifikate dafür eingesetzt werden. 
  • Mittels Service Monitoring wird festgelegt, wie der Zustand (on-/offline) eines Services überwacht wird. Dafür können verschiedene Pattern genutzt werden, wie ICMP (Ping), Port-Listening oder die Analyse von HTTP(S)-Headern.
  • In einem Pool werden alle VMs die denselben Service bereitstellen zusammengefasst. Der Pool wird für die Lastverteilung genutzt und anhand des definierten Service Monitors werden die Requests nur auf VMs verteilt, deren Service online ist. Für die Verteilung können verschiedene Algorithmen wir Round Robin, Source-IP-Hash, Least Connections, HTTP Header und weitere definiert werden. 
  • Application Rules sind benutzerdefinierte Regeln für den Load Balancer für erweiterte Szenarien, welche in der HAProxy-Konfigurationssprache geschrieben werden und für erweiterte Einsatzszenarien gedacht sind.
  • Der Virtual Server ist schliesslich der effektive virtuelle Server, der auf dem Load Balancer läuft und die Requests von Internet her entgegennimmt. Für jeden Virtual Server wird für die Erreichbarkeit eine IP-Adresse und ein Port festgelegt und ein Application Profile und ein Pool zugeordnet. Optional auch eine oder mehrere Application Rule. 
Konfigurationslogik und -abhängigkeiten des Loadbalancers

Konfigurationslogik und -abhängigkeiten des Load Balancers

Load Balancer konfigurieren

In Virtual Datacenter wurden zwei VMs als Webserver konfiguriert und mit Startseiten ausgestattet, die zur Identifikation entweder “webserver1” oder “webserver2” ausgeben. So kann der effektiv zugewiesene Webserver erkannt werden.

In Virtual Datacenter wurden zwei VMs als Webserver konfiguriert und mit Startseiten ausgestattet, die zur Identifikation entweder "webserver1" oder "webserver2" ausgeben.

Im folgenden Load-Balancing-Szenario soll die Last zwischen beiden Webservern verteilt werden. Die interne Kommunikation erfolgt dabei unverschlüsselt per HTTP und der Load Balancer verschlüsselt dann die Kommunkation im Internet mit HTTPS. Um das Load Balancing zwischen den beiden VMs zu konfigurieren, öffnen Sie Services in den Einstellungen des Edge Gateways und da den Tab Load Balancer. Schalten Sie diesen als Erstes in der Global Configuration auf Enabled.

Um das Loadbalancing zwischen den beiden VMs zu konfigurieren, öffnen Sie Services in den Einstellungen des Edge Gateways und da den Tab Loadbalancer. 

Im Tab Application Profile erstellen Sie ein neues Profil für Ihre Applikation oder Ihren Service und vergeben einen Namen dafür. Konfigurieren Sie das Protokoll des Services, ob ein SSL Passthrough stattfinden soll und welche Zertifikate eingesetzt werden. Im Beispiel nutzen wir ein selbstsigniertes Zertifikat des Edge Gateways.

Im Tab Application Profile erstellen Sie ein neues Profil für Ihre Applikation oder Ihren Service und vergeben einen Namen dafür. Konfigurieren Sie das Protokoll des Services, ob ein SSL Passthrough stattfinden soll und welche Zertifikate eingesetzt werden.

Für das Service Monitoring sind im entsprechenden Tab bereits Monitors für TCP, HTTP und HTTPS konfiguriert, welche die Pool-Members lediglich auf eine gültige Antwort des entsprechenden Protokolls prüfen. Bei Bedarf kann beispielsweise auch auf eine bestimmte Antwort von einer bestimmten URL geprüft werden. Für unser Szenario nutzen wir den HTTP-Monitor, der die Webserver auf eine gültige HTTP-Antwort prüft.

Für das Service Monitoring sind im entsprechenden Tab bereits Monitors für TCP, HTTP und HTTPS konfiguriert, welche die Pool-Members lediglich auf eine gültige Antwort des entsprechenden Protokolls prüfen.

Im Pool werden alle beteiligten Webserver als Member hinzugefügt, in unserem Fall webserver1 und webserver2. Als Load-Balancing-Algorithmus wird Round Robin festgelegt und damit quasi eine zufällige Verteilung erreicht. Mit dem definierten HTTP-Monitor wird der Zustand der Webserver überwacht und bei Problemen fehlerhafte Server vom Load Balancing ausgeschlossen. 

Im Pool werden alle beteiligten Webserver als Member hinzugefügt, in unserem Fall webserver1 und webserver2. Als Load-Balancing-Algorithmus wird Round Robin festgelegt und damit quasi eine zufällige Verteilung erreicht. Mit dem definierten HTTP-Monitor wird der Zustand der Webserver überwacht und bei Problemen fehlerhafte Server vom Load Balancing ausgeschlossen. 

Zuletzt wird der Virtual Server erstellt, welcher der vom Internet erreichbare Knotenpunkt darstellt. Ihm wird eine öffentliche IP Addresse, ein Port und ein Protokoll zugeordnet, mit denen der Service vom Internet her erreichbar sein wird. Die restliche Konfiguration wird durch Zuordnung der zuvor erstellten Objekte Application Profile und Pool erreicht. Mittels Acceleration würde der Load Balancer nur noch bis Layer 4 statt 7 agieren, sodass ein weniger intelligentes dafür aber performanteres Load Balancing möglich ist. Höhere Protokolle als TCP und UDP sind damit in der Konfiguration nicht erlaubt, weshalb wir mit unserer HTTPS-Konfiguration darauf verzichten.

Zuletzt wird der Virtual Server erstellt, welcher der vom Internet erreichbare Knotenpunkt darstellt. Ihm wird eine öffentliche IP Addresse, ein Port und ein Protokoll zugeordnet, mit denen der Service vom Internet her erreichbar sein wird.

Der Load Balancer ist nun fertig konfiguriert. Zuletzt muss noch eine Firewall Regel erstellt werden, die den Traffic für den HTTPS-Port 443 auf die öffentliche WAN-IP des Load Balancers erlaubt.

Zuletzt muss noch eine Firewall Regel erstellt werden, die den Traffic für den HTTPS-Port 443 auf die öffentliche WAN-IP des Load Balancers erlaubt.

Wird nun die URL https://212.237.xxx.xxx aufgerufen, wird unsere Anfrage mittels Round-Robin-Algorithmus beinahe abwechselnd zwischen webserver1 und webserver2 verteilt.

Wird nun die URL https://212.237.xxx.xxx aufgerufen, wird unsere Anfrage mittels Round-Robin-Algorithmus beinahe abwechselnd zwischen webserver1 und webserver2 verteilt.

Wird nun die URL https://212.237.xxx.xxx aufgerufen, wird unsere Anfrage mittels Round-Robin-Algorithmus beinahe abwechselnd zwischen webserver1 und webserver2 verteilt.

Damit ist der Load Balancer betriebsbereit.

 


Kategorien:
ServerBase Produkt-AssistentProduct Assistant
ServerBase Product Assistant

Product Assistant

Our product assistant helps you to find the right products.

In-house IT know-how

Do you have in-house IT personnel or know-how?

Server or services

Would you like to buy entire servers or just specific services?

Availability or price

Is high availability or a low price more important to you?

Number of servers

We can only achieve high availability with virtual servers. How many VMs do you want to operate?

We found something for you!

Success

Cluster VPS

Cluster VPS are virtual servers with extremely high availability, which continue to run without interruption even if our server hardware fails.

Shared or dedicated hardware

Do your VMs need to be separated from other customers only logically (IaaS) or even physically (dedicated Private Cloud)?

We found something for you!

Success

Virtual Datacenter

Virtual Datacenter (VDC) is the flexible and completely autonomously manageable IaaS solution from ServerBase.

We found something for you!

Success

Private Cloud

Our highly available Private Cloud offers simple, web-based management with the flexibility and security of an on-premises environment.

Server type

Do you prefer dedicated bare metal servers or virtual servers?

We found something for you!

Success

Dedicated server

Rent dedicated physical server hardware that is entirely dedicated to you and completely free to manage.

We found something for you!

Success

Standard VPS

Cost-effective servers for standard applications without special requirements with SSD or HDD storage.

We found something for you!

Success

Which service are you looking for?

Full outsourcing

Would you like to outsource your complete IT and have it managed by us?

We found something for you!

Success

My Workplace 2.0

With My Workplace 2.0, you store all your data and applications in our secure Swiss data centers and access them from anywhere.

We found something for you!

Success

What would you like to outsource?