Sitzungsbasierter Lastausgleich mit nginx und nodejs?

360
digory doo

Wie ich es verstehe, basiert der Lastausgleich mit nginx normalerweise auf Anfragen, dh jede Anfrage wird an einen anderen Ort weitergeleitet, sei es an entfernte Maschinen oder an Instanzen eines lokalen Dienstes. Ich muss es jedoch so konfigurieren, dass es sitzungsbasiert ist: nginx sollte für jeden Client, mit dem er spricht, einen neuen (lokalen) Prozess von nodejs erzeugen, dh einen pro Sitzung. Für eine einzelne Sitzung sollte dann jede Anforderung an diesen Prozess weitergeleitet werden. Der Prozess sollte beendet werden, wenn die Sitzung geschlossen wird oder das Zeitlimit überschritten wird.

Der Grund, warum ich dies tun möchte, ist, dass nodejs eine Datenbank kontaktieren muss, und es wäre wahrscheinlich zu ineffizient, wenn es für jede Anforderung eine Verbindung herstellen und trennen müsste. Stattdessen sollte es einmal pro Sitzung eine Verbindung zur Datenbank herstellen. Wenn die Sitzung geschlossen ist, sollte nodejs ordnungsgemäß beendet werden, sodass die Möglichkeit besteht, die Verbindung zur Datenbank ordnungsgemäß zu trennen.

Wie kann ich das machen? Wenn dies nicht möglich ist, wie kann ich vermeiden, bei jeder Anforderung eine Verbindung zur Datenbank herzustellen?

1

0 Antworten auf die Frage