Raspberry Pi als NGINX Load-Balancer

Vor kurzem benötigte ich dringend einen HTTP Load-Balancer, da ich kein KEMP oder F5 in meinem LAB habe, habe ich meinen „Raspberry PI 2“ dazu missbraucht 😉
Ich habe mich für den NGINX Server entschieden, da die Konfiguration sehr einfach ist und schnell von statten geht.

Vorbereitung

  • Ihr Raspberry hat eine gültige IP Konfiguration und ist im DNS eingetragen
  • Die Namensauflösung funktioniert auf ihrem Raspberry PI
  • Zwei Web-Server (WEB1 und WEB2)
  • Auf beiden Web-Servern ist eine individuelle „index.htm“ hinterlegt. Hinterlegen Sie den Namen jedes Server in der jeweiligen „index.htm“

Bevor wir anfangen, möchte ich drauf hinweisen, dass die Anleitung nicht für einen Produktivbetrieb genutzt werden sollte. Der Einsatz erfolgt auf eigene Gefahr, ich übernehme keine Haftung für Schäden!

Test der Web-Server

1. Starten Sie den Webbrowser von ihrem Client und rufen Sie die URL zu den Web-Servern auf.

2. Wenn beide Web-Server den passenden Inhalt zurück geben, dann können wir mit der Installation des NGINX fortfahren.

Installation

1. melden Sie sich via ssh an dem Raspberry Pi an.
2. Installieren Sie den NGINX Server.

3. Öffnen Sie die Datei „/etc/nginx/sites-available/default“ mit einem Editor.

4. Passen Sie die config in der Datei „default“ wie nachfolgende beschrieben an. Bei dieser Konfiguration handelt es sich um eine klassische Lastenverteilung (Round Robin)

5. Starten Sie den NGINX neu mit dem nachfolgenden Befehl:

6. Führen Sie nun von einem Client einen Funktionstest durch indem Sie einen Webbrowser starten und den Loadbalance in die URL eingeben.  Beispiel: http://pi.corp.id-home.de 

7. Nachdem die HTML Seite des Webservers-1 angezeigt wird, führen Sie einen „REFRESH“ im Webbrowser durch um die Seite erneut zu laden. Sie sollten die HTLM Seite vom zweiten Webserver angezeigt bekommen.

Die Installation und Konfiguration ist erfolgreich abgeschlossen. Nachfolgend zeige ich noch zwei weitere Arten des Load-Balancing.

Beispiel Konfiguration Load-Balancing mit Gewichtung
Bei dieser Konfiguration wird der erste Web-Server zu 50% belastet

Konfiguration Load-Balancing mit IP-Hash
Beim dieser Konfiguration wird die Client IP herangezogen und der Client terminiert immer auf dem selben Server.

Ich hoffe, ich konnte Ihnen einen kleinen Einblick geben. Sollten Sie Fragen haben, so scheuen Sie nicht mich zu kontaktieren. Nutzen Sie hier die “Kommentar Funktion” des Blogs oder wenn es Ihnen lieber ist via E-Mail.

Weiter Blogs folgen in den nächsten Tagen. Ich würde mich sehr freuen, wenn Sie wieder vorbeischauen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

fünf × eins =