Wir haben eine Online-Test-Anwendung, die von Studenten verwendet wird. Wir haben 4 verschiedene Server und ein Nginx über alle von ihnen, um den Datenverkehr zwischen allen 4 Servern zu verteilen.Nginx Load Balancer (ip_hash) Senden des gesamten Datenverkehrs an Einzelserver
Da unsere Anwendung sticky Sitzung (für einen Benutzer, alle Anfrage an einen Server) benötigen, so habe ich ip_hash Algorithmus für den Lastenausgleich aktiviert.
Jetzt haben wir eine Situation, wo alle Schüler für Online-Test in einem Computer-Labor erscheinen, die private IP jedem System zugewiesen hat und alle über ein Internet-Gateway mit öffentlicher IP-Adresse übergeben.
Jetzt, wenn Studenten für Test Load Balancer angezeigt werden, erhalten Sie die gleiche Ursprungs-IP für alle Studenten und aufgrund von ip_hash wird der gesamte Datenverkehr an einen Server gesendet.
Wie behebt man dieses Problem?
Wir haben Sticky-Sitzung mit gleicher Lastverteilung beibehalten.
Danke für die schnelle Antwort. Aber ich habe eine kostenlose Version von Nginx. Kann ich JSESSIONID aus Response-Header mit Hash für Load Balancing verwenden. Dies ist meine Antwort header: ** Set-Cookie: JSESSIONID = DD622D9F8108FA00CEEADDBCC6E91B1C; Pfad = /; HttpNur ** –