Cache static: ce este și cum funcționează
Publicat: 2022-06-30Strategiile de stocare în cache sunt complicate, așa că managerul nostru de asistență, Ryan Belisle, a avut nevoie de ceva timp pentru a explica o modalitate de a folosi cachea statică pentru a oferi un site mai rapid.
Continuați să citiți pentru a învăța:
- Ce este conținutul static cache?
- Beneficiile cache-ului static.
- Limitări ale stocării în cache statice.
- Cum se implementează stocarea în cache statică.
- Cum se dezactivează memoria cache statică.
În comerțul electronic, puține lucruri sunt mai mizerabile decât să plătești pentru o campanie promoțională și să o vezi sclipind, doar pentru a vedea ca site-ul tău se prăbușește și se arde în cea care ar trebui să fie cea mai bună oră. Uneori, promoțiile depășesc așteptările tale, iar măsurile tale proactive nu sunt suficiente. Ce atunci?
O tactică pentru a strânge mai multă performanță de pe site-ul dvs. în ultimul minut este o metodă numită caching static.
Atenție! Nu vă recomandăm să luați o abordare de ultimă oră pentru a face față creșterilor anticipate ale traficului web. Acest lucru este valabil atunci când ați aplicat deja cele mai bune practici de optimizare a infrastructurii sau a aplicației, iar rezultatele dvs. de marketing depășesc orice așteptări.
Ce este conținutul static cache?
Deși sunt disponibile multe forme de stocare în cache, stocarea în cache statică este o metodă de conversie a paginii generate de solicitarea unui utilizator într-un document HTML pentru a servi orice solicitări ulterioare către aceeași pagină.
Mai degrabă decât serverul să interpreteze codul site-ului în sine, să interogheze baza de date și să returneze un document HTML înapoi clientului și să încarce în final pagina, memorarea în cache statică salvează un singur rezultat din primii doi pași și oferă acel document oricărei alte persoane care face cererea. .
Beneficiile stocării în cache statice
Deși stocarea în cache de bază, static poate avea un efect profund, în special în următoarele domenii:
- Reduceți supraîncărcarea : În loc să fie nevoie să genereze procese PHP pentru a gestiona cererile către paginile de pe site, serverul web va servi documentul HTML direct înapoi la cererea din pagina stocată în cache static.
- Furnizați o „pagină de destinație” pentru tot traficul prin clic : în loc să cheltuiți resurse pentru oricine vă vizitează pagina de pornire sau urmează un link către o anumită adresă URL, aceasta furnizează pagina memorată în cache în mod implicit, fără a interfera cu funcționarea normală a altor pagini de pe site. .
Limitările stocării în cache statice
Vreau să subliniez, totuși, că stocarea în cache statică are limitări și, în general, ar trebui să fie folosită doar ca soluție temporară. Ține minte:
- Un cache static este doar asta: static. Orice modificări aduse site-ului nu vor fi reflectate în paginile stocate în cache în acest mod.
- Informații precum „articolele din coș” sau alte date stocate în fișierele de sesiune ale clienților dumneavoastră nu vor funcționa pe aceste pagini.
Cum se implementează memoria cache statică
Deși există câteva moduri diferite de a implementa stocarea în cache statică, iată pașii de bază pentru a o face manual:
1. Conectați-vă la serverul dvs. cu SSH.
2. Creați un director separat în webroot pentru a stoca documentele HTML utilizate în memoria cache static.
3. Folosind cURL sau Wget, faceți cereri către paginile țintă și stocați-le în director sub numele lor URI respective (index, produse etc.)
4. Adăugați rescrieri în partea de sus a fișierului dvs. .htaccess pentru a redirecționa cererile către fișierele cache statice, cum ar fi următoarele:
[cod]
RewriteCond %{REQUEST_URI} ^/?example_category$ [NC]
RewriteRule .* https://www.domain.tld/static/example_category.html [R=302,L]
[/cod]
Alternativ, puteți scrie și un script pentru a gestiona acest proces. Exemplul de mai jos vă permite să creați un fișier cu o adresă URL separată pe fiecare linie. Aceste adrese URL vor fi apoi citite pentru a genera memoria cache static:
[limba codului=”bash”]
#!/bin/bash
# Validarea argumentelor de bază
dacă [ „$#” -ne 2 ]; apoi
echo -e „Trebuie să treacă două argumente către script.\n\nUtilizare: ./nexcess_static_cache_helper.sh domeniul fișier_list_url\n”
iesirea 1
fi
# Obțineți câteva date despre domeniu
domeniu=$1
pages_file=2$
# Creați un director pentru paginile statice în directorul curent
cache_dir=./static_cache
dacă ! [[ -d $cache_dir ]]; apoi
mkdir $cache_dir
fi
# Descărcați pagini statice în fișiere HTML
URL_list=$(cat $pages_file)
pentru URL în $URL_list; do
request_uri=$(echo $URL | cut -d/ -f 4-)
dacă [[ -z „$request_uri” ]]; apoi
cache_page_name="index"
request_uri="/”
altfel
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
Terminat
# Formatați un bloc pentru htaccess
echo -e „########”
echo -e „# START: Rescrierile URL din memoria cache statică au fost generate pe $(data)”
echo -e „########”
echo -e „RewriteEngine On”
cat $HOME/temp_url.file | în timp ce citește pagina uri; do
echo „RewriteCond %{REQUEST_URI} ^/?${uri}$ [NC]\n”
echo „RewriteRule .* https://www.${domain}/static_cache/$page [R=302,L]\n”
Terminat
echo -e „######”
echo -e „# END: Rescrieri URL cache statice generate pe $(data)”
echo -e „######”
rm $HOME/temp_url.file
[/cod]

Pentru a utiliza scriptul de mai sus:
1. Navigați la rădăcina web a site-ului dvs., apoi creați un fișier numit cache_list.txt sau orice doriți.
2. Deschideți fișierul. Adăugați adresa URL pentru fiecare pagină care trebuie să fie stocată în cache, folosind o nouă linie pentru fiecare intrare URL. Acesta ar trebui să arate astfel:
[cod]
https://www.example.com/
https://www.example.com/sale
https://www.example.com/produse
[/cod]
Salvați fișierul, apoi creați un fișier cu scriptul de mai sus și salvați-l ca nexcess_static_cache_helper.sh , sau orice nume preferați.
Faceți fișierul executabil:
[cod]chmod +x nexcess_static_cache_helper.sh[/code]
Când este gata, rulați scriptul, dar înlocuiți folosiți propriul nume de fișier și numele de domeniu real:
[cod]./nexcess_static_cache_helper.sh example.com cache_list.txt[/code]
Aceasta va crea un director static_cache sub webroot-ul dvs., care conține documentele HTML care vor fi utilizate pentru memoria cache static. În plus, terminalul dvs. va afișa o ieșire asemănătoare cu:
[cod]
########
# START: Rescrierile URL ale cache-ului static au fost generate pe Luni, 18 septembrie, 15:49:11 EDT 2017
########
RewriteEngine Pornit
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
######
# Sfârșit: rescrierea adreselor URL din memoria cache statică generate pe Luni, 18 septembrie 15:49:11 EDT 2017
######
[/cod]
Copiați blocul de mai sus și inserați-l în partea de sus a fișierului dvs. .htaccess pentru site, care ar trebui să fie în general în directorul dvs. curent.
Cache-ul static ar trebui să fie acum activat. În spiritul unei bune îngrijiri, ștergeți fișierele pe care le-am generat în pașii anteriori:
[cod]rm nexcess_static_cache_helper.sh cache_list.txt[/code]
Cum să dezactivezi memoria cache statică
Pentru a dezactiva stocarea în cache statică, eliminați blocul de cod plasat în fișierul .htaccess.
În plus, dacă trebuie să regenerați fișierele, rulați din nou scriptul și va înlocui documentele HTML cu versiuni mai noi. Aș recomanda să înlocuiți și blocul de cod .htaccess, doar pentru a actualiza marca temporală pentru referințe viitoare.
Acum știi
După cum sa menționat anterior, aceasta este doar o metodă temporară și nu trebuie utilizată ca strategie principală de optimizare a performanței. Pentru soluții pe termen lung, consultați ghidul nostru de optimizare, implementați un CDN sau contactați echipa noastră de asistență pentru a explora opțiuni suplimentare, cum ar fi găzduirea Magento, WooCommerce sau WordPress.
Sau, consultați pachetele WordPress gestionate de Nexcess pentru a vedea cum puteți optimiza performanța site-ului dvs.