Desempenho e monitorização

Integrar o LiteSpeed Cache no Laravel

Revisto a 4 min de leitura desempenho LiteSpeed Cache Laravel

O Laravel pode utilizar o LiteSpeed para armazenar respostas HTTP de rotas compatíveis. É útil quando uma página pode ser reutilizada sem executar toda a aplicação. Não substitui a otimização de consultas nem o armazenamento de cache do Laravel, que pode utilizar o Redis ou outro controlador.

Preparar a integração

Verifique a compatibilidade da sua versão de PHP e de Laravel com o litespeed/lscache-laravel. Teste em staging e guarde o código, o ficheiro de dependências bloqueadas e a configuração anteriores.

A partir da raiz do projeto:

composer require litespeed/lscache-laravel
php artisan vendor:publish --provider='Litespeed\LSCache\LSCacheServiceProvider'

Execute cada comando apenas se o anterior terminar corretamente. Reveja o ficheiro de configuração publicado sem substituir às cegas uma configuração existente. O pacote utiliza a deteção automática do Laravel; não copie instruções de registo de providers ou do Kernel.php de um ramo antigo para um projeto atual.

Para que o LiteSpeed procure respostas armazenadas, a documentação do pacote indica esta regra no .htaccess público da aplicação, mantendo as regras do Laravel:

<IfModule LiteSpeed>
    CacheLookup on
</IfModule>

Escolher rotas e uma política de purga

Comece por uma rota de leitura que devolva exatamente o mesmo conteúdo a todos os visitantes. O middleware do pacote permite definir uma duração e se a resposta é pública, privada ou não armazenável. Mantenha os valores globais sem cache enquanto define que rotas a podem utilizar.

Não transforme todo o grupo web ou a administração em cache pública. Uma página que pareça informativa pode incluir o nome de utilizador, o token CSRF, a moeda, o idioma ou dados de sessão no seu template. Esses elementos requerem exclusões ou um desenho específico.

Defina também quando invalidar as respostas: publicar uma notícia ou alterar um preço deve retirar as páginas relacionadas. O pacote disponibiliza etiquetas e funções de purga; utilize as que correspondem à sua versão e ao modelo de conteúdo do projeto.

Verificar antes da implementação

Teste uma rota pública várias vezes e reveja os seus cabeçalhos HTTP: emitir um cabeçalho de controlo não demonstra que o servidor armazenou a resposta. Procure um acerto de cache num pedido posterior.

Verifique duas sessões independentes, os idiomas e qualquer variante relevante. Atualize o conteúdo de teste e verifique que a purga o torna visível. O login, o logout, os formulários e as operações com efeitos devem manter o seu comportamento.

Se aparecer conteúdo de outra sessão, desative a política de cache afetada e purgue imediatamente as suas respostas. Para retirar a integração, reverta o middleware e a configuração, purgue a cache e depois remova a dependência com o seu procedimento de implementação. Não basta remover o pacote enquanto restarem respostas armazenadas.

Também lhe pode ser útil

Algo não bate certo ou mudou? Diga-nos e revemos.