Se você usar um trabalho cron para excluir todas as sessões, todos os carrinhos de compras dos clientes serão excluídos e as pessoas deixarão seu site irritado.
Sugiro que você analise seus arquivos de sessão e veja se eles parecem suspeitos.
Tente verificar de onde são os endereços IP dos visitantes aqui: https://www.iplocation.net/
Se, por exemplo, você encontrar vários IPs chineses e seu site não for chinês, provavelmente serão robôs que estão desperdiçando sua largura de banda. Você deve bloquear os intervalos de IP nas configurações do Apache ou em .htaccess
.
(Acredito que você pode até fazer filtragem baseada no país no Apache, mas acho que isso diminui o tempo de resposta. Não tentei isso.)
O Magento 1.x (não tenho certeza sobre o 2.x) também parece ter um bug, ao criar uma nova sessão para cada solicitação quando o cliente não aceita cookies. Assim, robôs como Googlebot, Bingbot, SemrushBot e outros geram um grande número de arquivos de sessão.
Para o meu servidor, a única coisa que eu precisava fazer era me livrar desses arquivos de sessão de bot. Até que eu tenha tempo para encontrar e corrigir o bug do Magento, tenho um script de shell em execução pelo cron para remover todos os arquivos de sessão que contêm essas strings:
- Googlebot
- bingbot
- aranha
- semrush
- AhrefsBot
- UptimeRobot
- spbot
Em vez de usar scripts personalizados, faria mais sentido simplesmente fazer com que o PHP os esclarecesse, especificando os valores corretos em seu
php.ini
arquivo. Se você garantir quesession.gc_maxlifetime
possui um valor relativamente pequeno (mas> = o tempo limite do cookie da sessão), por exemplo, 1440 esession.gc_probability
está definido como 1, o coletor de lixo embutido na sessão do PHP deve remover os arquivos para você.fonte
Magento salva os dados da sessão do cliente na pasta var / session. Se você excluir esta pasta, todos os dados da sessão do cliente serão excluídos.
Vamos supor que um de seus clientes convidados adicione 3 produtos ao carrinho, se você excluir os dados da sessão, ele removerá todos os 3 produtos do carrinho e será uma experiência ruim para o cliente, em vez de excluir os dados da sessão, você poderá salvar a sessão no banco de dados
Para usar o banco de dados para armazenamento de sessão, basta ter isso no seu aplicativo / etc / local.xml :
ou você pode usar o cache de sessão redis / Sessão Memcached para salvar dados no cache redis / Sessão Memcached
Para usar um repositório de sessões memcached no Magento, você precisará disso no seu aplicativo / etc / local.xml :
Para obter mais informações sobre armazenamento de sessão, visite este link
fonte
Uma solução é criar um trabalho cron que esteja sendo executado uma vez por dia para excluir os arquivos que você deseja.
Aqui você pode ver como configurar o cron job: /ubuntu/2368/how-do-i-set-up-a-cron-job
um tutorial cpanel para cronjob: http://support.hostgator.com/articles/cpanel/how-do-i-create-and-delete-a-cron-job
Você pode criar um script bash ou php que fará a operação de exclusão de arquivos. E coloque esse script no cron, para ser executado às 3 ou 4 da manhã, quando o servidor for menos usado. Para testar o script está funcionando, você pode executá-lo manualmente.
fonte
Crie um arquivo sh na raiz do documento. Coloque o código abaixo dentro dele.
altere o caminho com o caminho document_root sem aspas. Execute esse código quando houver menos ocorrências no site.
FEITO!!
fonte