lorderich
Goto Top

Best-Practice Loadbalancing WebServer

Hallo zusammen,

ich versuche gerade einen neuen Netzwerkaufbau, allerdings stoße ich an irgendeiner Stelle immer an etwas, dass für mich nicht so recht ins 21. Jahrhundert passen möchte.

Also:
Domain A zeigt auf Loadbalancer

Nun gibt es ja 3 Optionen:

Option 1:
- Loadbalancer agiert als HTTP Balancer, erhält Zertifikat für Domain A und leitet die Anfragen dann unverschlüsselt ins Rechenzentrum an die eigentlichen Webserver weiter

Vorteil:
Geringere Last auf den Webservern, weil nichts entschlüsselt werden muss.
Client IP Adresse kann auf den Apache Webservern ausgelesen werden

Nachteil:
- Unverschlüsselte Kommunikation zwischen dem Loadbalancer und den Webservern quer durch das Netz
- Zusätzliche Anpassungen an den Websites notwendig, da keine HTTP Elemente darin auftauchen dürfen

Option 2:
- Loadbalancer agiert als TCP Balancer, Zertifikate für Domain A sind auf den Webservern - Verbindung zwischen Loadbalancer und Client bei Aufbau unverschlüsselt

Nachteil:
- Apache Webserver hat keine Möglichkeit, die Client IP in Erfahrung zu bringen, da TCP Routing und daher keine Möglichkeit für FORWARED_IP

Option 3:
- Loadbalancer agiert als HTTPS Balancer, erhält Zertifikat für Domain A und leitet die Anfragen dann verschlüsselt an die jeweiligen Webserver weiter

Vorteil:
End2End Verschlüsselung ist auch dann sichergestellt, wenn der Loadbalancer irgendwo in der Cloud steht und die Webserver in einem anderen Rechenzentrum
Client IP Adresse kann auf den Apache Webservern ausgelesen werden

Nachteil:
- zusätzliche Zertifikate sind notwendig.

Variante 3 finde ich ja fast am besten, nur ist mir nicht wirklich klar, was für ein Zertifikat ich hier auf den Backend-Servern brauche. Selbstsignierte werden logischerweise von jedem Browser angemahnt, die gleichen wie auf dem Loadbalancer klingt auch nicht wirklich sinnvoll.

Wie habt ihr sowas bisher umgesetzt?

Danke und Grüße

René

Content-ID: 346350

Url: https://administrator.de/forum/best-practice-loadbalancing-webserver-346350.html

Ausgedruckt am: 26.12.2024 um 01:12 Uhr

Dani
Dani 15.08.2017 um 15:09:18 Uhr
Goto Top
Moin,
bitte überarbeite die Formatierung deines Beitrags. Ist doch sehr mühsam zu lesen....


Gruß,
Dani
emeriks
emeriks 15.08.2017 um 15:15:53 Uhr
Goto Top
Hi,
Du soltest auch mal erwähnen, was das denn für WebSites sind. Dann können Dir die Kollegen sicherlich zielgerichtete Tipps geben.
Was ich weiß:
Bei "dummen" HTML-Seiten kann man auch einfach über DNS Round Robin für Lastverteilung sorgen.

E.
Lorderich
Lorderich 15.08.2017 um 15:22:39 Uhr
Goto Top
Also Ziel ist dahinter eine Wordpress Installation zu betreiben.

Bei DNS Round-Robin hast Du ja immer das Problem, dass bei einem Serverausfall, je nach Anzahl der Server bis zu 50% der Anfragen verloren gehen.
Lorderich
Lorderich 15.08.2017 um 15:22:58 Uhr
Goto Top
Hallo Dani,

danke, schon gemacht :D
emeriks
emeriks 15.08.2017 um 15:30:04 Uhr
Goto Top
Bei DNS Round-Robin hast Du ja immer das Problem, dass bei einem Serverausfall, je nach Anzahl der Server bis zu 50% der Anfragen verloren gehen.
Du hast nach Loadbalancing gefragt, nicht nach Failover.
Lorderich
Lorderich 15.08.2017 um 15:40:32 Uhr
Goto Top
Naja, DNS-Round-Robin als Loadbalancing zu bezeichnen, liegt wohl auch mehr als fern.

Immerhin verteilt DNS nicht nach logischen Kriterien wie Verfügbarkeit, Auslastung und, und, und.

Danke und Grüße

René
Dani
Dani 15.08.2017 aktualisiert um 15:54:33 Uhr
Goto Top
Moin,
du solltest dir erstmal Gedanken zu Kollege @emeriks Anmerkung machen. Anschließend lese dich zu den verbreitetsten Modis L4 NAT oder L7SNAT ein. Danach überlege nochmals welcher deiner drei Optionen (teilweise) noch sinnvoll sind. Evtl. verschwindet auch der eine oder andere Vor- bzw. Nachteil. face-smile

Unabhängig davon werden die SSL-Zertifikate natürlich auf den FQDN des Servers ausgestellt. Evtl. noch im SAN den FQDN des Loadbalancer-Cluster. Wobei das von dem gewählten Modi abhängt. face-smile

Da sich um Wordpress handelt, ist natürlich im Vorfeld noch zu überlegen, wie die Last unter Verwendung von Cache-System redudziert werden kann. Schließlich optimiert man zuerst und baut anschließend Infrastruktur, etc... auf.

Naja, DNS-Round-Robin als Loadbalancing zu bezeichnen, liegt wohl auch mehr als fern.
Eigentlich nicht. Es gibt genug Best Practices von Microsoft, wo dies sogar empfohlen wird.


Gruß,
Dani
emeriks
emeriks 15.08.2017 aktualisiert um 15:45:01 Uhr
Goto Top
Naja, DNS-Round-Robin als Loadbalancing zu bezeichnen, liegt wohl auch mehr als fern.
Immerhin verteilt DNS nicht nach logischen Kriterien wie Verfügbarkeit, Auslastung und, und, und.
Ich habe ganz bewusst auf
Bei "dummen" HTML-Seiten
eingegrenzt.
StefanKittel
StefanKittel 15.08.2017 um 16:35:48 Uhr
Goto Top
Hallo,

Du solltest davon ausgehen, dass der LB in direkter Nähe der Web-Server steht.
Üblich wäre Option 1

Stefan
Sheogorath
Sheogorath 16.08.2017 aktualisiert um 01:10:50 Uhr
Goto Top
Moin,

Loadbalancing. Hier gibt es viele Varianten. Je nach Art und Skalierung deines Setups nutzt man mehrere.

Erstmal sollte man klären, was genau du denn machen willst.

  • Wo soll loadbalanced werden?
  • Willst du deine Webseite ausfallsicher haben? Und wenn ja, was bedeutet das bei dir? Welche Ausfallzeiten sind okay?
  • Ist die Load auf deinem Server zu hoch? Wenn ja, Lesende oder schreibende Requests?
  • Wie wichtig ist der Schutz von Userdaten? Sprich kann ein Drittanbieter an Bord oder nicht?

Was du im Grunde komplett streichen kannst ist irgendwelchen Traffic plaintext durchs Netz zu jagen. Bei Layer 4 ist es dir egal, bei höheren Layern arbeitest du einfach Client <-> Loadbalancer mit trusted certificated und Loadbalancer <-> origin server mit einem self-signed Certificates, welches du am Loadbalancer validierst. Können eigentlich alle gängigen Loadbalancer ohne Probleme.

Übrigens bei L4 loadbalacing machst du die Weiterleitung in der Regel ohne Änderung der Source IP, somit kommt die durchaus beim Webserver an, allerdings macht man L4 Loadbalancing auch eigentlich nur im eigenen Netzwerk, sodass man Firewall states für dieses NATing vorhalten kann. Sowas außerhalb zu machen ist unsinnig und gefährlich.

Wenn du dann mal grob die Motive der Loadbalanceridee ausgebreitet hast, können wir uns dann tatsächlich über die Umsetzung unterhalten.

Denn bisher erscheint mir dein Usecase einfach nicht sinnvoll.

Gruß
Chris