Si utiliza un trabajo cron para eliminar todas las sesiones, eliminará todos los carritos de compras de los clientes y la gente abandonará su sitio enojado.
Le sugiero que mire sus archivos de sesión y vea si parecen sospechosos.
Intente verificar dónde están las direcciones IP de sus visitantes desde aquí: https://www.iplocation.net/
Si, por ejemplo, encuentra un montón de direcciones IP chinas y su sitio web no es chino, estos probablemente sean bots que están desperdiciando su ancho de banda. Debe bloquear sus rangos de IP en su configuración de Apache o en .htaccess
.
(Creo que incluso puedes hacer filtros basados en países en Apache, pero creo que ralentiza los tiempos de respuesta. No lo he intentado).
Magento 1.x (no estoy seguro acerca de 2.x) también parece tener un error en el que crea una nueva sesión para cada solicitud cuando el cliente no acepta cookies. Entonces, bots como Googlebot, Bingbot, SemrushBot y otros, generan una gran cantidad de archivos de sesión.
Para mi servidor, lo único que tenía que hacer era deshacerme de esos archivos de sesión de bot. Hasta que tenga tiempo de encontrar y corregir el error de Magento, tengo un script de shell que ejecuta cron para eliminar todos los archivos de sesión que contienen estas cadenas:
- Googlebot
- bingbot
- araña
- semrush
- AhrefsBot
- UptimeRobot
- spbot
En lugar de usar secuencias de comandos personalizadas, tendría más sentido simplemente hacer que PHP las elimine especificando los valores correctos en su
php.ini
archivo. Si se asegura de quesession.gc_maxlifetime
tiene un valor relativamente pequeño (pero> = el tiempo de espera de la cookie de su sesión), por ejemplo, 1440 ysession.gc_probability
está configurado en 1, entonces el recolector de basura de sesión PHP incorporado debería eliminar los archivos por usted.fuente
Magento guarda los datos de sesión del cliente en la carpeta var / session si elimina esta carpeta, eliminará todos los datos de sesión del cliente
Supongamos que uno de sus clientes invitados agrega 3 productos al carrito si elimina los datos de la sesión, eliminará los 3 productos del carrito y es una mala experiencia para el cliente, en lugar de eliminar los datos de la sesión, puede guardar la sesión en la base de datos
Para usar la base de datos para el almacenamiento de la sesión, simplemente tenga esto en su aplicación / etc / local.xml :
o puede usar la sesión de redis / caché de sesión de Memcached para guardar datos en la caché de redis / sesión de Memcached
Para usar una tienda de sesión memcached en Magento, necesitará tener esto en su aplicación / etc / local.xml :
Para obtener más información sobre el almacenamiento de sesiones, visite este enlace.
fuente
Una solución es crear un trabajo cron que se ejecute una vez al día para eliminar los archivos que desee.
Aquí puede ver cómo configurar el trabajo cron: /ubuntu/2368/how-do-i-set-up-a-cron-job
un tutorial de cpanel para cronjob: http://support.hostgator.com/articles/cpanel/how-do-i-create-and-delete-a-cron-job
Puede crear un script bash o php que hará la operación de eliminar archivos. Y coloque este script en el cron, para que se ejecute a las 3 o 4 a.m. hora del servidor, cuando el servidor se usa menos. Para probar si el script funciona, puede ejecutarlo manualmente.
fuente
Cree un archivo sh en la raíz del documento. Poner el siguiente código dentro de él.
cambie la ruta con su ruta document_root sin comillas. Ejecute este código cuando haya menos visitas al sitio.
¡¡HECHO!!
fuente