Cache estático: o que é e como funciona
Publicados: 2022-06-30As estratégias de cache são complicadas, então nosso gerente de suporte, Ryan Belisle, levou algum tempo para explicar uma maneira de usar o cache estático para entregar um site mais rápido.
Continue lendo para aprender:
- O que é conteúdo estático de cache?
- Benefícios do cache estático.
- Limitações do cache estático.
- Como implementar o cache estático.
- Como desabilitar o cache estático.
No comércio eletrônico, poucas coisas são mais miseráveis do que pagar por uma campanha promocional e vê-la brilhar, apenas para ver seu site travar e queimar durante o que deveria ser seu melhor momento. Às vezes, as promoções superam suas expectativas e suas medidas proativas não são suficientes. O que então?
Uma tática para extrair mais desempenho do seu site no último minuto é um método chamado cache estático.
Atenção! Não recomendamos adotar uma abordagem de última hora para lidar com picos previstos no tráfego da web. Isso é para quando você já aplicou as melhores práticas de otimização de sua infraestrutura ou aplicativo e seus resultados de marketing superam todas as expectativas.
O que é conteúdo estático de cache?
Embora muitas formas de armazenamento em cache estejam disponíveis, o armazenamento em cache estático é um método para converter a página gerada pela solicitação de um usuário em um documento HTML para atender a quaisquer solicitações subsequentes para essa mesma página.
Em vez de o servidor interpretar o próprio código do site, consultar o banco de dados e retornar um documento HTML de volta ao cliente e, finalmente, carregar a página, o cache estático salva um único resultado das duas primeiras etapas e fornece esse documento para qualquer outra pessoa que faça a solicitação .
Benefícios do cache estático
Embora básico, o cache estático pode ter um efeito profundo, especificamente nas seguintes áreas:
- Reduza a sobrecarga : Em vez de precisar gerar processos PHP para lidar com solicitações para páginas no site, o servidor da Web apenas servirá o documento HTML diretamente de volta à solicitação na página armazenada em cache estaticamente.
- Forneça uma “página de destino” para todo o tráfego de cliques : em vez de gastar recursos para quem visita sua página inicial ou segue um link para um URL específico, isso fornece a página em cache por padrão sem interferir na operação normal de outras páginas do site .
Limitações do cache estático
Eu quero salientar, no entanto, que o cache estático tem limitações e geralmente deve ser usado apenas como uma solução temporária. Tenha em mente:
- Um cache estático é apenas isso: estático. Quaisquer alterações feitas no site não serão refletidas nas páginas armazenadas em cache dessa maneira.
- Informações como “itens no carrinho” ou outros dados armazenados nos arquivos de sessão de seus clientes não funcionarão nessas páginas.
Como implementar o cache estático
Embora existam algumas maneiras diferentes de implementar o cache estático, aqui estão as etapas básicas para fazê-lo manualmente:
1. Faça login em seu servidor com SSH.
2. Crie um diretório separado em sua webroot para armazenar os documentos HTML usados no cache estático.
3. Usando cURL ou Wget, faça solicitações às páginas de destino e armazene-as no diretório sob seus respectivos nomes de URI (índice, produtos etc.)
4. Adicione regravações na parte superior do arquivo .htaccess para redirecionar solicitações para os arquivos de cache estáticos, como o seguinte:
[código]
RewriteCond %{REQUEST_URI} ^/?example_category$ [NC]
RewriteRule .* https://www.domain.tld/static/example_category.html [R=302,L]
[/código]
Alternativamente, você também pode escrever um script para lidar com esse processo. O exemplo abaixo permite que você crie um arquivo com uma URL separada em cada linha. Esses URLs serão lidos para gerar seu cache estático:
[linguagem do código=”bash”]
#!/bin/bash
# Validação de argumento básico
if [ “$#” -ne 2 ]; então
echo -e “Deve passar dois argumentos para o script.\n\nUso: ./nexcess_static_cache_helper.sh domain url_list_file\n”
saída 1
fi
# Obtenha alguns dados sobre o domínio
domínio=$1
pages_file=$2
# Cria diretório para páginas estáticas no diretório atual
cache_dir=./static_cache
E se ! [[ -d $cache_dir ]]; então
mkdir $cache_dir
fi
# Baixe páginas estáticas em arquivos HTML
URL_list=$(cat $pages_file)
para URL em $URL_list; Faz
request_uri=$(echo $URL | cut -d/ -f 4-)
if [[ -z “$request_uri” ]]; então
cache_page_name="index"
request_uri="/"
senão
cache_page_name=$(echo $request_uri | perl -pe 's,/|\.,_,g')
fi
wget -q $URL -O $cache_dir/$cache_page_name.html
echo “$request_uri $cache_page_name” >> $HOME/temp_url.file
feito
# Formata um bloco para o htaccess
echo -e “########”
echo -e “# START: Reescritas de URL de cache estático geradas em $(date)”
echo -e “########”
echo -e “RewriteEngine On”
cat $HOME/temp_url.file | enquanto lê a página uri; Faz
echo “RewriteCond %{REQUEST_URI} ^/?${uri}$ [NC]\n”
echo “RewriteRule .* https://www.${domain}/static_cache/$page [R=302,L]\n”
feito
echo -e “######”
echo -e “# END: Reescritas de URL de cache estático geradas em $(date)”
echo -e “######”
rm $HOME/temp_url.file
[/código]

Para usar o script acima:
1. Navegue até a webroot do seu site e crie um arquivo chamado cache_list.txt, ou o que você preferir.
2. Abra o arquivo. Adicione o URL para cada página que precisa ser armazenada em cache estático, usando uma nova linha para cada entrada de URL. Isso deve se parecer com o seguinte:
[código]
https://www.example.com/
https://www.example.com/sale
https://www.example.com/products
[/código]
Salve o arquivo, crie um arquivo com o script acima e salve-o como nexcess_static_cache_helper.sh , ou qualquer nome que você preferir.
Torne o arquivo executável:
[code]chmod +x nexcess_static_cache_helper.sh[/code]
Quando estiver pronto, execute o script, mas substitua use seu próprio nome de arquivo e nome de domínio real:
[código]./nexcess_static_cache_helper.sh example.com cache_list.txt[/code]
Isso criará um diretório static_cache em sua webroot contendo os documentos HTML a serem usados para o cache estático. Além disso, seu terminal mostrará uma saída semelhante a:
[código]
########
# START: reescritas de URL de cache estático geradas em segunda-feira 18 de setembro 15:49:11 EDT 2017
########
Rewrite Engine On
RewriteCond %{REQUEST_URI} ^/?/$ [NC]\n
RewriteRule .* https://www.example.com/static_cache/index [R=302,L]\n
RewriteCond %{REQUEST_URI} ^/?sale$ [NC]\n
RewriteRule .* https://www.example.com/static_cache/sale [R=302,L]\n
RewriteCond %{REQUEST_URI} ^/?products$ [NC]\n
RewriteRule .* https://www.example.com/static_cache/products [R=302,L]\n
######
# END: reescritas de URL de cache estático geradas em segunda-feira, 18 de setembro 15:49:11 EDT 2017
######
[/código]
Copie o bloco acima e cole-o no topo do seu arquivo .htaccess para o site, que geralmente deve estar em seu diretório atual.
O cache estático agora deve estar habilitado. No espírito da boa limpeza, exclua os arquivos que geramos nas etapas anteriores:
[code]rm nexcess_static_cache_helper.sh cache_list.txt[/code]
Como desativar o cache estático
Para desabilitar o cache estático, remova o bloco de código colocado no arquivo .htaccess.
Além disso, se você precisar regenerar os arquivos, execute o script novamente e ele substituirá os documentos HTML por versões mais recentes. Eu recomendaria substituir o bloco de código .htaccess também, apenas para atualizar o timestamp para referência futura.
Agora você sabe
Conforme declarado anteriormente, este é apenas um método temporário e não deve ser usado como sua principal estratégia de otimização de desempenho. Para soluções de longo prazo, confira nosso guia de otimização, implemente um CDN ou entre em contato com nossa equipe de suporte para explorar opções adicionais, como hospedagem Magento, WooCommerce ou WordPress.
Ou confira os pacotes WordPress gerenciados da Nexcess para ver como você pode otimizar o desempenho do seu site.