Wenn Sie einen Cron-Job verwenden, um alle Sitzungen zu löschen, löschen Sie alle Kunden-Einkaufswagen und die Leute verlassen Ihre Website wütend.
Ich schlage vor, Sie sehen sich Ihre Sitzungsdateien an und prüfen, ob sie verdächtig aussehen.
Überprüfen Sie hier, wo sich die IP-Adressen Ihrer Besucher befinden: https://www.iplocation.net/
Wenn Sie beispielsweise eine Reihe chinesischer IP-Adressen finden und Ihre Website nicht chinesisch ist, handelt es sich wahrscheinlich um Bots, die Ihre Bandbreite verschwenden. Sie sollten ihre IP-Bereiche in Ihren Apache-Einstellungen oder in blockieren .htaccess
.
(Ich glaube, Sie können in Apache sogar länderbasierte Filterung durchführen, aber ich denke, dass dies die Antwortzeiten verlangsamt. Das habe ich nicht versucht.)
Magento 1.x (nicht sicher über 2.x) scheint auch einen Fehler zu haben, bei dem für jede Anfrage eine neue Sitzung erstellt wird, wenn der Client keine Cookies akzeptiert. Bots wie Googlebot, Bingbot, SemrushBot und andere generieren also eine große Anzahl von Sitzungsdateien.
Für meinen Server musste ich nur diese Bot-Sitzungsdateien entfernen. Bis ich die Zeit habe, den Magento-Fehler zu finden und zu beheben, wird ein Shell-Skript von cron ausgeführt, um alle Sitzungsdateien zu entfernen, die diese Zeichenfolgen enthalten:
- Googlebot
- Bingbot
- Spinne
- Semrush
- AhrefsBot
- UptimeRobot
- spbot
Anstatt benutzerdefinierte Skripte zu verwenden, ist es sinnvoller, PHP diese einfach für Sie zu löschen, indem Sie die richtigen Werte in Ihrer
php.ini
Datei angeben. Wenn Sie sicherstellen, dass diessession.gc_maxlifetime
einen relativ kleinen Wert hat (aber> = Ihr Sitzungscookie-Timeout), z. B. 1440, undsession.gc_probability
auf 1 gesetzt ist, sollte der integrierte PHP-Sitzungs-Garbage Collector die Dateien für Sie entfernen.quelle
Magento speichert Sitzungsdaten des Kunden im Ordner var / session. Wenn Sie diesen Ordner löschen, werden alle Sitzungsdaten des Kunden gelöscht
Nehmen wir an, einer Ihrer Gastkunden fügt 3 Produkte zum Warenkorb hinzu. Wenn Sie Sitzungsdaten löschen, werden alle 3 Produkte aus dem Warenkorb entfernt. Dies ist eine schlechte Erfahrung für den Kunden, anstatt Sitzungsdaten zu löschen, die Sie in der Datenbank speichern können
Um die Datenbank für die Sitzungsspeicherung zu verwenden, haben Sie dies einfach in Ihrer App / etc / local.xml :
oder Sie können den Cache redis session / Memcached Session verwenden , um Daten im redis cache / Memcached Session zu speichern
Um einen zwischengespeicherten Sitzungsspeicher in Magento verwenden zu können, muss dies in Ihrer App / etc / local.xml enthalten sein :
Weitere Informationen zum Sitzungsspeicher finden Sie unter diesem Link
quelle
Eine Lösung besteht darin, einen Cron-Job zu erstellen, der einmal pro Tag ausgeführt wird, um die gewünschten Dateien zu löschen.
Hier können Sie sehen, wie Sie einen Cron-Job einrichten: /ubuntu/2368/how-do-i-set-up-a-cron-job
Ein Cpanel-Tutorial für Cronjob: http://support.hostgator.com/articles/cpanel/how-do-i-create-and-delete-a-cron-job
Sie können ein Bash- oder PHP-Skript erstellen, mit dem Dateien gelöscht werden. Und setzen Sie dieses Skript in den Cron, um 3 oder 4 Uhr morgens Serverzeit ausgeführt zu werden, wenn der Server weniger genutzt wird. Um zu testen, ob das Skript funktioniert, können Sie es manuell ausführen.
quelle
Erstellen Sie eine sh-Datei im Dokumentstamm. Geben Sie den folgenden Code ein.
Ändern Sie den Pfad mit Ihrem document_root-Pfad ohne Anführungszeichen. Führen Sie diesen Code aus, wenn weniger Site-Treffer vorliegen.
ERLEDIGT!!
quelle