117217
Goto Top

Load Balancing mit nginx unter Windows

Hallo,
ich versuche zurzeit Load Balancing mit nginx(upstream) unter Windows einzurichten, jedoch scheint die Art, wie ich es haben möchte, so nicht einfach möglich zu sein:
upstream Full_Balance {
	    server x.x.x.x/.../GameMod.7z       weight=3;
	    server x.de/.../x.php?lang=en       resolve;
	    server drive.google.com/file/d/x/edit?usp=sharing       resolve;
	}

location /html/.../GameMod.7z {
	        proxy_pass http://Full_Balance;
			health_check;
	    }
Dieser Mod ist über 4GB groß, weswegen es sinnvoll ist, die Bandbreite aufzuteilen. Nun kann man laut dem Standard aber keine URL in upstream spezifizieren. Nun die Frage: Gibt es einen Umweg damit es doch möglich wird?

Mit freundlichen Grüßen

Content-Key: 245438

Url: https://administrator.de/contentid/245438

Ausgedruckt am: 28.03.2024 um 22:03 Uhr

Mitglied: Dani
Dani 02.08.2014 um 20:39:13 Uhr
Goto Top
Moin,
Nun kann man laut dem Standard aber keine URL in upstream spezifizieren. Nun die Frage: Gibt es einen Umweg damit es doch möglich wird?
Macht auch keinen SInn. Im oberen Teil werden nur die verschiedenen Server angegeben + Optionen wie Prio oder Backup. Es setzt damit vorraus, dass der Pfad zu dieser Datei auf allen Server identisch ist und das passiert bei location.


Gruß,
Dani
Mitglied: 117217
117217 02.08.2014 um 21:05:04 Uhr
Goto Top
Danke für die Wiederholung des Standards, aber das war nicht meine Frage. Meine Frage lautet, ob es eine Möglichkeit gibt eine Anfrage zu einer Datei/Ordner(Index) so weiterzuleiten, dass nicht die Datei/Ordner(Index) zurückgegeben wird, sondern, dass man zu einer zufällig von vielen vordefinierten URL's weitergeleitet wird, die nicht dieselbe URL Struktur wie die der angefragten URL haben.

Mit freundlichen Grüßen
Mitglied: Dani
Dani 02.08.2014 um 21:14:11 Uhr
Goto Top
Guten Abend,
bin ich mir bewusst... aber der LB leitet die Anfrage direkt an die einzelnen Webserver weiter - ohne die URL zu prüfen o.ä. Dein Wunsch müsstest du auf den Webservern abbilden.


Gruß,
Dani
Mitglied: 117217
117217 02.08.2014 um 21:33:32 Uhr
Goto Top
Also gibt es mit nginx und sonstige Erweiterungen, die es für den Webserver geben sollte, keine Möglichkeit meine Frage zu ermöglichen?

Mit freundlichen Grüßen
Mitglied: Dani
Dani 02.08.2014 aktualisiert um 21:43:28 Uhr
Goto Top
Was läuft denn auf dem Backendservern für ein Webserver? Bei Apache könnte man vllt. mit .htaccess etwas erreichen.


Gruß,
Dani
Mitglied: 117217
117217 02.08.2014 aktualisiert um 22:42:04 Uhr
Goto Top
Nginx 1.7.3, Win 2012R2, PHP 5.5.14. Ich habe als Alternative schon mit JavaScript angefangen.


Mit freundlichen Grüßen
Mitglied: aqui
aqui 03.08.2014 um 14:38:28 Uhr
Goto Top
Alternative wäre vielleicht einen virtuellen Load Balancer wie den Brocade virtual ADX einsetzen. Der kann sowas, würde in einer VM auf der gleichen Maschine laufen.
http://www.brocade.com/products/all/network-functions-virtualization/pr ...
Gibts mit einer 60 Tage Testlizenz zum Austesten.
Mitglied: 117217
117217 03.08.2014 aktualisiert um 17:56:07 Uhr
Goto Top
Das ist meine Notlösung als JavaScript:

<!DOCTYPE html PUBLIC "-W3CDTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<script type="text/javascript">
var pages = ['url1', 'url2', 'url3'];
function rand(Min, Max)
{
return Math.floor(Math.random() * Max) + Min;
}
if (rand(0,100) < 16)
{
window.location = pages[2];
}
else
{
if (rand(0,100) < 16)
{
window.location = pages[1];
}
else
{
window.location = pages;
}
}
</script>
</body>
</html>
Mitglied: 16568
16568 04.08.2014 um 06:16:34 Uhr
Goto Top
Anscheinend hast Du das hier gelesen, aber nicht verstanden...

Lonesome Walker
Mitglied: 117217
117217 09.08.2014 um 01:29:07 Uhr
Goto Top
Anscheinend hast Du es nicht verstanden. Mit "upstream" müssen die Daten auf jeden der angegebenen Server unter den gleichen Pfaden hinterlegt sein, da das aber nicht der Fall ist (siehe Post #1, Quelltextzeile 2-4), kann es für die von mir benötigte Funktion nicht verwendet werden. Und somit ist auch das, worauf Du hingewiesen hast, nutzlos. Zumindest funktioniert es mit der JavaScript-Lösung.

Mit freundlichen Grüßen
Mitglied: 16568
16568 09.08.2014 um 12:24:31 Uhr
Goto Top
Zitat von @117217:
Anscheinend hast Du es nicht verstanden.

Öhm, das denke ich doch wohl...

Mit "upstream" müssen die Daten auf jeden der angegebenen Server unter den
gleichen Pfaden hinterlegt sein

RÖCHTÖÖÖCH.

da das aber nicht der Fall ist (siehe Post #1, Quelltextzeile 2-4), kann es für die von mir
benötigte Funktion nicht verwendet werden.

RÖÖÖCHTÖÖÖÖCH.

Und somit ist auch das, worauf Du hingewiesen hast, nutzlos.

Was denkst Du, WARUM ich darauf hingewiesen habe?
Du hast das mit Proxy wahrscheinlich gegoogelt, und bist auf den manpages zu nginx hängen geblieben;
hast aber nicht erkannt, daß das, was Du brauchst, kein Proxy ist. (oder brauchst Du Sessionverwaltung und SSL-Terminierung?)

Zumindest funktioniert es mit der JavaScript-Lösung.

Klar, solange jeder Javascript an hat. *kopfschüttel*


Lonesome Walker