Definieren Sie einen benutzerdefinierten Lastenausgleichsalgorithmus

9

Hier ist die Situation:

Ich habe eine Reihe von Webservern, sagen wir 10. Ich brauche einen (Software-) Load-Balancer, der mit einem Reverse-Proxy-Server wie HAProxy oder Varnish implementiert werden kann. Jetzt ist der gesamte Verkehr, den wir bedienen, über https und nicht http, so dass Varnish nicht in Frage kommt.

Nun möchte ich die Anfrage des Benutzers in ein paar Kategorien aufteilen, die von einem der Eingabe (POST) -Parameter der Anfrage abhängen. Abhängig von diesem Parameter muss ich die Anfrage auf die Server aufteilen (auch wenn alle anderen Eingabe- (POST-) Parameter identisch sind), würden verschiedene Server anders funktionieren.

Also muss ich einen benutzerdefinierten Lastenausgleichsalgorithmus definieren, so dass ich für einen bestimmten Wert dieses Parameters die Last auf spezifische 3 (sagen wir mal) teile, für einen anderen Wert die Anfrage auf spezifische 2 und für teilen anderer Wert (e), zu den verbleibenden 5.

Da ich Lack nicht verwenden kann, da es nicht verwendet werden kann, um ssl zu beenden (das Definieren eines benutzerdefinierten Algorithmus wäre in VCL einfach gewesen), denke ich an die Verwendung von HA-Proxy.

Also, hier ist die Frage:

Kann mir jemand bei der Definition einer benutzerdefinierten Lastenausgleichsfunktion mit HA-Proxy helfen?

Ich habe viel recherchiert und konnte kein Dokument finden, mit dem wir es können. Also, wenn es mit HA-Proxy nicht möglich ist, können Sie mich auf einen anderen Reverse-Proxy-Dienst verweisen, der auch als Load Balancer verwendet werden kann, so dass er beide oben genannten Kriterien erfüllt? (SSL-Terminierung und die Möglichkeit, einen benutzerdefinierten Lastenausgleich zu definieren).

BEARBEITEN:

Diese Frage wird nacheinander mit einer meiner vorherigen Fragen gestellt. Varnish wird für https verwendet

    
vish4071 03.12.2015, 15:40
quelle

1 Antwort

2

Ich bin mir nicht sicher, was Ihr Ziel ist, aber ich würde NICHT empfehlen, das benutzerdefinierte Routing basierend auf dem HTTP-Anfragekörper überhaupt durchzuführen. Dies wird sehr schlecht und wahrscheinlich überwiegen alle Vorteile, die Sie erreichen wollen.

Alles, was Werte jenseits von typischen HTTP-Headern an Ihrem Lastenausgleichsmodul analysieren muss, verlangsamt die Dinge. Cookies selbst sind in der Regel eine schlechte Idee, wenn Sie es vermeiden können.

Wenn Sie die Pfad- / Routenwerte steuern können, ist das wahrscheinlich eine viel bessere Idee, als jeden POST für bestimmte Werte zu analysieren.

Sie können wahrscheinlich erreichen, was Sie wollen, über NGINX mit Lua-Skripten (die Kong-Plattform basiert auf ihnen), aber ich kann nicht sagen, wie schwer das für Sie wäre ...

Ссылка

Hier ist ein Artikel mit einem speziellen Beispiel für die Einstellung verschiedener Upstreams basierend auf lua-Eingabe.

Ссылка

%Vor%     
Tracker1 15.12.2015 06:28
quelle