Si vous utilisez un travail cron pour supprimer toutes les sessions, vous supprimerez tous les paniers d'achat des clients et les gens quitteront votre site en colère.
Je vous suggère de regarder vos fichiers de session et de voir s'ils semblent suspects.
Essayez de vérifier d'où proviennent les adresses IP de vos visiteurs: https://www.iplocation.net/
Si, par exemple, vous trouvez un tas d'adresses IP chinoises et que votre site Web n'est pas chinois, ce sont probablement des bots qui gaspillent votre bande passante. Vous devez bloquer leurs plages IP dans vos paramètres Apache ou dans .htaccess
.
(Je pense que vous pouvez même effectuer un filtrage par pays dans Apache, mais je pense que cela ralentit les temps de réponse. Je n'ai pas essayé cela.)
Magento 1.x (pas sûr de 2.x) semble également avoir un bug où il crée une nouvelle session pour chaque demande lorsque le client n'accepte pas les cookies. Ainsi, les robots comme Googlebot, Bingbot, SemrushBot et autres, génèrent tous un grand nombre de fichiers de session.
Pour mon serveur, la seule chose que je devais faire était de me débarrasser de ces fichiers de session de bot. Jusqu'à ce que j'aie le temps de trouver et de corriger le bogue de Magento, j'ai un script shell exécuté par cron pour supprimer tous les fichiers de session contenant ces chaînes:
- Googlebot
- bingbot
- araignée
- semrush
- AhrefsBot
- UptimeRobot
- spbot
Plutôt que d'utiliser des scripts personnalisés, il serait plus logique de simplement faire en sorte que PHP les clarifie pour vous en spécifiant les bonnes valeurs dans votre
php.ini
fichier. Si vous vous assurez que la valeursession.gc_maxlifetime
est relativement petite (mais> = le délai d'expiration de votre cookie de session), par exemple 1440, et qu'ilsession.gc_probability
est défini sur 1, le récupérateur de place de session PHP intégré doit supprimer les fichiers pour vous.la source
Magento sauvegarde les données de session du client dans le dossier var / session si vous supprimez ce dossier, il supprimera toutes les données de session client
Supposons qu'un de vos clients invités ajoute 3 produits au panier si vous supprimez les données de session, les 3 produits seront supprimés du panier et que c'est une mauvaise expérience pour le client plutôt que de supprimer les données de session, vous pouvez enregistrer la session dans la base de données
Pour utiliser la base de données pour le stockage de session, il vous suffit de disposer ceci dans votre application / etc / local.xml :
ou vous pouvez utiliser redis session / Memcached Session cache pour enregistrer les données dans redis cache / Memcached Session
Pour utiliser un magasin de sessions memcached dans Magento, vous devez l'avoir dans votre application / etc / local.xml :
Pour plus d'informations sur le stockage de session, visitez ce lien
la source
Une solution consiste à créer une tâche cron qui s'exécute une fois par jour pour supprimer les fichiers souhaités.
Ici, vous pouvez voir comment configurer le travail cron: /ubuntu/2368/how-do-i-set-up-a-cron-job
un tutoriel cpanel pour cronjob: http://support.hostgator.com/articles/cpanel/how-do-i-create-and-delete-a-cron-job
Vous pouvez créer un script bash ou php qui fera l'opération de suppression des fichiers. Et mettez ce script dans le cron, pour être exécuté à 3 ou 4 heures du serveur, lorsque le serveur est moins utilisé. Pour tester le script, il fonctionne, vous pouvez l'exécuter manuellement.
la source
Créez un fichier sh à la racine du document. Mettez le code ci-dessous à l'intérieur.
changer de chemin avec votre chemin document_root sans guillemets. Exécutez ce code lorsqu'il y a moins de visites sur le site.
TERMINÉ!!
la source