Heim >Betrieb und Instandhaltung >Nginx >Wie Nginx Sitzungen teilt

Wie Nginx Sitzungen teilt

(*-*)浩
(*-*)浩Original
2019-06-13 10:36:275868Durchsuche

Wenn Nginx einen Lastausgleich durchführt und die URL derselben IP den Server anfordert, leitet der Lastausgleich die Anfrage basierend auf der Gewichtung jedes Servers und anderen Einstellungen an verschiedene Server weiter Bei Statusanfragen handelt es sich um ein großes Problem. Die Sitzung kann nicht geteilt werden.

Wie Nginx Sitzungen teilt

Die Sitzung existiert in Die Datenbank MySQL

Die Sitzung wird in der Datenbank gespeichert, in der die Sitzungstabelle und andere Datentabellen zusammen gespeichert werden. Wenn sich der Benutzer dann anmeldet und Vorgänge ausführt, muss er oder sie zur Datenbank gehen Um den Status der Sitzung zu überprüfen, erhöht sich zweifellos der Druck auf die MySQL-Datenbank. Wenn die Datenbank ebenfalls geclustert ist, muss jeder Knoten des Datenbankclusters die Sitzungstabelle und die Daten der Sitzungstabelle speichern In jedem Clusterknoten muss eine konsistente Echtzeitsynchronisierung erfolgen.

Erklärung: Die Sitzung wird in der Datenbank gespeichert, was die E/A der Datenbank erhöht und den Druck und die Belastung der Datenbank erhöht Dies beeinträchtigt die Lese- und Schreibleistung der Datenbank und ist nicht förderlich für die Echtzeitsynchronisation der Sitzung

Sitzung wird im Cache-Memcache oder Redis gespeichert

Memcache kann verteilt werden, und die Speichermethode ist in der PHP-Konfigurationsdatei auf Memcache eingestellt, sodass PHP es selbst erstellt. Ein Sitzungscluster speichert Sitzungsdaten im Memcache.

Erklärung: Diese Art der Sitzungssynchronisierung erhöht die Belastung der Datenbank nicht und die Sicherheit wird im Vergleich zur Verwendung von Cookies zum Speichern von Sitzungen erheblich verbessert. Allerdings unterteilt Memcache den Speicher in Speicherblöcke mit unterschiedlichen Spezifikationen, und jeder Block hat seine eigene Größe. Diese Methode bestimmt auch, dass Memcache den Speicher nicht vollständig nutzen kann und zu einer Speicherfragmentierung führt .

ip_hash-Technologie

kann in nginx konfiguriert werden, wenn ein Client unter einer bestimmten IP einen angegebenen (festen) anfordert, da ein Hash-Wert basierend auf der IP-Adresse berechnet wird Bestimmen Sie anhand des Hash-Werts, welcher Server zugewiesen ist, sodass jede IP-Anfrage dem angegebenen Server zugewiesen wird, sodass die Integrität des Status der Statusanforderung gewährleistet werden kann und kein Statusverlust auftritt ist nginx Konfiguration, Sie können sich auf Folgendes beziehen:

upstream nginx.example.com  
    {   
             server 192.168.1.2:80;   
             server 192.168.1.3:80;  
             ip_hash;  
    }  
    server  
    {  
             listen 80;  
             location /  
             {  
                     proxy_pass  
                    http://nginx.example.com;  
             }  
 }

Hinweis: ip_hash Diese Lösung kann zwar die Integrität von Anfragen mit Status sicherstellen, weist jedoch einen großen Fehler auf, nämlich die ip_hash-Lösung muss sicherstellen, dass Nginx der Front-End-Server ist (der eine echte IP akzeptiert). Wenn Nginx nicht der Front-End-Server ist und Middleware (Zwischenserver oder ähnliches) vorhanden ist, ist die von Nginx erhaltene IP-Adresse nicht die echte IP-Adresse. dann wird dieser ip_hash sein Es macht keinen Sinn

Weitere technische Artikel zu Nginx finden Sie in der Spalte Nginx-Tutorial, um mehr zu erfahren!

Das obige ist der detaillierte Inhalt vonWie Nginx Sitzungen teilt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

In Verbindung stehende Artikel

Mehr sehen