Généralement, il existe deux formes de contenu d'équilibrage de charge, l'une est statique et l'autre est dynamique. Le contenu dynamique d'un site Web peut devoir être interactif, ce qui implique la question du partage de session. Par défaut, PHP stocke les sessions dans LocalDisk Si le chargement s'effectue entre plusieurs hôtes PHP, comment partager la session ? Aujourd'hui, nous allons résoudre ce problème.
Il existe de nombreuses façons de partager des fichiers au cours d'une session :
Partage de fichiers distribués ; NFS, stockage de fichiers NAS, etc.
Le module ip_hash d'équilibrage de charge Nginx corrige les visiteurs sur un certain serveur backend.
Stockez la session dans la base de données telle que MySQL, Memcached, Redis, Mongodb, etc.
Personnellement, je préfère stocker la session dans la base de données Redis. Utiliser cette méthode pour synchroniser le partage de session n'augmentera pas la charge sur la base de données, mais est plus sécurisée que les cookies. Mettre la session en mémoire est plus rapide que de la télécharger à partir d'un. fichier disque. La lecture sera beaucoup plus rapide. "Certaines personnes pensent : si j'installe tous les logiciels de mise en cache, cela ne serait-il pas plus rapide ? Cela ne serait alors pas une accélération de la mise en cache, mais cela deviendrait une bibliothèque de mise en cache."
Le script du langage php ne prend pas en charge le fonctionnement de Redis par défaut, vous devez donc installer un module d'extension phpRedis tiers pour prendre en charge le fonctionnement de Redis. Quant à la façon d'installer et d'utiliser phpRedis, vous pouvez vous référer à l'article que j'ai écrit. plus tôt "Installation, configuration et utilisation du module d'extension phpRedis". De plus, un serveur Redis est requis ici. Veuillez vous référer à « Compilation du code source et configuration de l'installation de Linux Centos7 Redis 3.2.9 ».
1. Modifiez le fichier de configuration PHP php.ini pour stocker la session dans Redis.
# vim /usr/local/php/etc/php.ini session.save_handler = files ;session.save_path = "N;/path" 修改为: session.save_handler = Redis session.save_path = “tcp://10.10.204.66:6379” ;如果Redis有密码连接方式 session.save_path = “tcp://10.10.204.66:6379?auth=password”
2. Redémarrez le service php-fpm pour prendre effet
# systemctl restart php-fpm
Tous les processus ci-dessus sont testés manuellement et 99 % peuvent être utilisés pour la production.
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!