Если вы используете задание cron для удаления всех сеансов, вы удалите все корзины покупок, и люди покинут ваш сайт.
Я предлагаю вам взглянуть на файлы сессий и посмотреть, не выглядят ли они подозрительно.
Попробуйте проверить, откуда IP-адреса ваших посетителей: https://www.iplocation.net/
Если, например, вы обнаружите несколько IP-адресов на китайском языке, а ваш веб-сайт не является китайским, это, вероятно, боты, которые тратят вашу пропускную способность. Вы должны заблокировать их диапазоны IP-адресов в настройках Apache или в .htaccess
.
(Я полагаю, что вы можете даже выполнять фильтрацию по странам в Apache, но я думаю, что это замедляет время отклика. Я этого не пробовал.)
Magento 1.x (не уверен в 2.x) также, похоже, содержит ошибку, из-за которой он создает новый сеанс для каждого запроса, когда клиент не принимает куки. Таким образом, такие боты, как Googlebot, Bingbot, SemrushBot и другие, генерируют огромное количество файлов сессий.
Для моего сервера единственное, что мне нужно было сделать, это избавиться от этих файлов сессий бота. Пока у меня нет времени найти и исправить ошибку Magento, у меня есть скрипт оболочки, запущенный cron для удаления всех файлов сеанса, содержащих эти строки:
- Googlebot
- bingbot
- паук
- SEMrush
- AhrefsBot
- UptimeRobot
- spbot
Вместо использования пользовательских сценариев, было бы более разумно просто объяснить PHP для вас, указав правильные значения в вашем
php.ini
файле. Если вы уверены, что оноsession.gc_maxlifetime
имеет относительно небольшое значение (но> = время ожидания вашего сеансового файла cookie), например, 1440, иsession.gc_probability
установлено в 1, то встроенный сборщик мусора сеанса PHP должен удалить файлы за вас.источник
Magento сохраняет данные сеанса клиента в папке var / session, если вы удалите эту папку, она удалит все данные сеанса клиента
Давайте предположим, что один из ваших гостевых клиентов добавил 3 продукта в корзину, если вы удалите данные сеанса, он удалит все 3 продукта из корзины, и это будет плохим опытом для клиента, вместо удаления данных сеанса вы можете сохранить сеанс в базе данных.
Чтобы использовать базу данных для хранения сеанса, просто поместите ее в ваш файл / etc / local.xml :
или вы можете использовать сеанс redis / кэш Memcached для сохранения данных в кэш redis / Memcached Session
Чтобы использовать хранилище сессий memcached в Magento, вы должны иметь это в своем приложении / etc / local.xml :
Для получения дополнительной информации о хранении сессии посетите эту ссылку
источник
Одним из решений является то, что вы можете создать задание cron, которое запускается один раз в день, чтобы удалить нужные файлы.
Здесь вы можете увидеть, как настроить работу cron: /ubuntu/2368/how-do-i-set-up-a-cron-job
учебник cpanel для cronjob: http://support.hostgator.com/articles/cpanel/how-do-i-create-and-delete-a-cron-job
Вы можете создать скрипт bash или php, который будет выполнять операцию удаления файлов. И поместите этот скрипт в cron, чтобы он выполнялся в 3 или 4 часа по времени сервера, когда сервер используется меньше. Чтобы проверить, работает ли скрипт, вы можете запустить его вручную.
источник
Создайте sh файл в корне документа. Поместите ниже код внутри него.
изменить путь с вашим путем document_root без кавычек. Запустите этот код, когда количество посещений сайта меньше.
СДЕЛАННЫЙ!!
источник