Ich bin neu bei HAProxy und habe eine Frage zur HAProxy-Konfiguration, die mir hilft, die richtige Entscheidung zu treffen. Dies wird mir sehr dabei helfen, die Architektur zu bestimmen.HAProxy - URL-basiertes Routing mit Lastenausgleich
Ich habe 3 Apps. Sagen wir app1
, app2
, app3
.
Jede App durch die Urls wie folgt unterschieden:
Region 1 - app1, app2, app3
Region 2 - app1, app2, app3
Ich sehe zwei Methoden, um dies zu konfigurieren:
www.example.com/app1/123 -> app1
www.example.com/app2/123 -> app2
www.example.com/app3/123 -> app3
I 2 Instanzen jeder App in zwei verschiedenen Regionen zu haben, bin der Planung aber ich bin nicht sicher, welches ist die beste Praxis hier:
Methode 1: Lassen Sie HAProxy1 zuerst die Anfragen anhand der URL-Muster unterscheiden. Anforderungen von HAProxy1 werden an einen anderen HAProxy-Server weitergeleitet, um einzelne Anwendungen (in diesem Fall 3 HAProxy-Server) für den Lastausgleich einzurichten.
Methode 2: Habe einen großen HAProxy Server, der die beiden tut wie in Methode 1 angegeben Das heißt, haben Konfiguration die Anforderungen je nach der URL zu trennen und dann jede Anfrage durch den einzelnen Filter wie Dinge passieren einrichten für jede App zum Lastenausgleich.
Ich bin mir nicht sicher, ob Methode 2 in Haproxy unterstützt wird. Irgendwelche Ideen oder Vorschläge werden sehr geschätzt. Bitte mach etwas Licht.
Vergessen Sie nicht, auch Ihre Loadbalancer auszubalancieren. Wenn der Proxy fehlschlägt, sind Ihre Apps nicht verfügbar. Überprüfen Sie keepalived, kann diesen Job für Sie mit ganz einfach konfigurieren –
Ich habe eine typische Situation, viele Konten mit meinem Load Balancer verbinden. Wie kann ich die Gesamtzahl der monatlichen und täglichen Anfragen beschränken, die von einem bestimmten Konto landen.Wenn ich 200 als täglichen Schwellenwert für ein Konto festgelegt habe, sage ABC Bank, ich möchte alle Anfragen über 200 hinaus fallen lassen, idealerweise sollte ich auch senden eine Nachricht "Kontingent über" an den Anfragenden. Sollte ich dies am Lastenausgleich tun oder sollte dies bei der Anwendungsinstanz beachtet werden? –
Es sieht so aus, als ob die Backends basierend auf der ersten Pfadkomponente unterschiedlich sind, 'path_beg' könnte in diesem Fall ein besserer Test als' path_end' sein –