Cette fois, nous l'avons implémenté sur la base de l'article précédent Session problème de partage
Machine Nginx : 192.168.1.108
Les deux machines Tomcat sont : 192.168.1.168
192.168.1.178
Un : problème de partage de session de test
Ajouter la page index.jsp d'origine Le code suivant
SessionId :<%= session.getId() %>
<% String username =(String)session.getAttribute("username " );
if(!"".equals(username)&& username!=null){
out.print("------username is "+session.getAttribute("username"))
} autre {
"------maintenant, le nom d'utilisateur est "+session.getAttribute("nom d'utilisateur"));
} }
%>
À ce moment-là, la première fois que vous la visite via nginx est la machine 178
Lors de l'actualisation à nouveau, la machine 168 a été accédée
D'accord On voit que la session n'est pas partagée pour le moment. Sous le cluster, des sessions
sont créées respectivement. 2 : Utilisez Redis pour implémenter le partage de session
Il existe de nombreuses façons de réaliser le partage de session Cette fois, la session est stockée dans Redis pour réaliser le partage.
1. Installez redis (Veuillez voir comment installer)
redis est également installé à 192.168.1.108, comme Nginx Installé sur la même machine
2. Copiez les packages jar requis dans les répertoires lib des deux tomcats
3. Modifier le contenu dans context.xml
respectivement dans tomcat/conf Ajouter le contenu suivant dans /context.xml
port ="6379"
base de données="0"
maxInactiveInterval="60" / >
où className est fixe et obtenu est la classe implémentée dans le package jar
host est le nom d'hôte de redis et le port est redis La base de données du port est le nombre de bibliothèques Redis où la session est stockéemaxInactiveInterval indique la durée de survie de la session
4. Testez à nouveau le partage de session
Après les trois premières étapes, le problème de partage de session sous redis a été réalisé, testez à nouveau
Démarrez redis, nginx et tomcat respectivement et visitez http://192.168.1.108:7777/nginxTest/
À ce moment, nginx est le premier à avancer à 178 Sur cette machine, à ce moment, le nom d'utilisateur dans la session est vide, puis une valeur est stockée dans
nom d'utilisateur, puis la valeur
Visitez à nouveau http://192.168.1.108:7777/nginxTest/, à ce moment, nginx est transféré à la machine 168
À ce moment, l'identifiant de session est le même que 178. En même temps, le nom d'utilisateur a également une valeur, et la valeur
est imprimée directement. Cela montre que la session. est partagé à ce moment. La session correspondante
est également enregistrée dans redis.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!