Heim  >  Artikel  >  Backend-Entwicklung  >  Installation und Konfiguration von Nginx und PHP mit acht Nginx-Sitzungsfreigaben

Installation und Konfiguration von Nginx und PHP mit acht Nginx-Sitzungsfreigaben

不言
不言Original
2018-04-14 10:05:311387Durchsuche

Der Inhalt dieses Artikels besteht darin, Ihnen die Installation und Konfiguration von acht Nginx-Sitzungen mitzuteilen. Er hat einen gewissen Referenzwert.

Überprüfen Sie Lesen Sie einige Informationen und lesen Sie einige von anderen geschriebene Dokumente, um das Teilen der Nginx-Sitzung

PHP Es gibt mehrere Server nginx für den Lastausgleich, sodass die gleiche IP wird auf dieselbe Seite zugegriffen. Wenn die Sitzung nicht synchron ist, treten viele Probleme auf, z. B. der häufigste Anmeldestatus löse esSitzungGemeinsame Probleme:

1

, nicht mit Sitzung , ersetzen durch Cookie

Sitzung

wird serverseitig gespeichert, Cookie wird gespeichert. Auf der Clientseite können wir die Sitzung, die durch den Zugriff des Benutzers auf die Seite generiert wird, in das Cookie einfügen. das heißt, Cookie ist eine Transferstation. Sie besuchen den Web-Server A, generieren eine Sitzung und fügen sie dann in Inside ein das Cookie, wenn Ihre Anfrage dem Server B zugeordnet wird, dem Server BStellen Sie zunächst fest, ob der Server diese Sitzung hat. Wenn nicht, prüfen Sie, ob das Cookie dieses Sitzung, wenn nicht, bedeutet das, dass Sitzung wirklich nicht existiert, wenn Cookie drin ist. Ja, Synchronisieren Sie die Sitzung im Cookie mit dem Server B, so wie Sie kann eine Synchronisierung der Sitzung erreichen. Hinweis: Diese Methode ist einfach und bequem zu implementieren und erhöht die Belastung der

Datenbank nicht . Wenn der Client jedoch Cookies deaktiviert, kann die Sitzung nicht synchronisiert werden, was zu Verlusten auf der Website führt Cookie ist nicht sehr sicher, obwohl es verschlüsselt wurde, kann es dennoch gefälscht werden. 2

,

Sitzung existiert in der Datenbank (MySQL usw.) in

php kann so konfiguriert werden, dass Sitzung in der Datenbank gespeichert wird Die Tabellen der 🎜>Sitzung werden mit anderen Datenbanktabellen zusammengestellt. Wenn MySQL ebenfalls geclustert ist, wird jede MySQL-Knoten müssen über diese Tabelle verfügen und die Datentabelle dieser Sitzungstabelle muss in Echtzeit synchronisiert werden.

Hinweis: Verwenden Sie die Datenbank, um die

Sitzung zu synchronisieren, und fügen Sie Big DataBibliotheksIO erhöht die Belastung der Datenbank. Darüber hinaus ist die Lese- und Schreibgeschwindigkeit der Datenbank langsam, was der rechtzeitigen Synchronisierung der Sitzung nicht förderlich ist. 3

, Sitzung existiertMemcache oder Redis in Memcache

kann verteilt werden, phpStellen Sie die Speichermethode in der Konfigurationsdatei auf memcache ein, damit php einen allein Sitzung Cluster speichert Sitzungsdaten im Memcache. Hinweis: Die Synchronisierung der

Sitzung

auf diese Weise erhöht die Belastung der Datenbank nicht und ist sicherer als die Verwendung von Cookie wird erheblich verbessert. Das Speichern von Sitzung erfolgt viel schneller als das Lesen aus einer Datei. Aber Memcache unterteilt den Speicher in Speicherblöcke mit vielen Spezifikationen. Jeder Block hat eine Größe, die durch diese Methode Memcache bestimmt wird Der Speicher kann nicht vollständig genutzt werden und es kommt zu einer Speicherfragmentierung. Wenn nicht genügend Speicherblöcke vorhanden sind, kommt es zu einem Speicherüberlauf. 4

,

nginx Die ip_hash-Technologie kann Direct die Anfrage einer bestimmten IP an dasselbe Backend, so dass ein bestimmter Client unter dieser IP und einem bestimmten A stabil Sitzung kann mit nur einem Backend eingerichtet werden, und ip_hash ist im UpstreamDefiniert in die Konfiguration: [html]

Ebene anzeigen kopieren


1.   upstream nginx.example.com  
2.       {   
3.                server 192.168.74.235:80;   
4.                server 192.168.74.236:80;  
5.                ip_hash;  
6.       }  
7.       server  
8.       {  
9.                listen 80;  
10.               location /  
11.               {  
12.                       proxy_pass  
13.                      http://nginx.example.com;  
14.               }  
15.   }

ip_hash ist leicht zu verstehen, da aber nur der Faktor ip zur Zuordnung des Backends verwendet werden kann, also ip_hash ist defekt und kann in manchen Situationen nicht verwendet werden:
1.nginx
ist kein Front-End-Server.

ip_hash erfordert nginx muss der Front-End-Server sein, andernfalls nginxWenn Sie nicht die richtige IP erhalten, können Sie keinen Haship 🎜>. Wenn Sie beispielsweise squid als Frontend verwenden, dann nimmt nginx ip Sie können nur die Server-IP-Adresse von squid erhalten. Es ist definitiv verwirrend, diese Adresse für die Verteilung zu verwenden. 2. Das Backend von Nginx
verfügt über andere Methoden zum Lastausgleich.

Wenn

nginx über einen anderen Lastausgleich im Backend verfügt und die Anfrage über eine andere Methode umleitet, dann handelt es sich definitiv um die Anfrage eines bestimmten Clients kann sich nicht auf demselben Sitzungs-Anwendungsserver befinden. Wenn man es so berechnet, kann das nginx-Backend nur direkt auf den Anwendungsserver verweisen oder einen anderen Squid erstellen und dann auf den verweisen Anwendungsserver. Am besten verwenden Sie Standort, um eine Umleitung vorzunehmen und einige Anfragen, die eine Sitzung erfordern, über weiterzuleiten ip_hash Leiten Sie den Datenverkehr um und wechseln Sie für den Rest zu anderen Backends.

Verwandte Empfehlungen:

Nginx- und PHP-Installation und -Konfiguration 5 Strategien für sieben Nginx-Lastausgleich

Nginx- und PHP-Installation und -Konfiguration 6: Nginx-Reverse-Proxy- und Load-Balancing-Bereitstellungsleitfaden

Nginx- und PHP-Installation und -Konfiguration 5: LINUX mit PHPIZE Installieren Sie PHP GD Erweiterung

Das obige ist der detaillierte Inhalt vonInstallation und Konfiguration von Nginx und PHP mit acht Nginx-Sitzungsfreigaben. 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