6. modulis · 6.2
Kešatmiņa
6. modulis: Ātrdarbība · Lasīšanas laiks: 9 minūtes
Mācību mērķis: Pēc šīs nodarbības Jūs varēsiet izskaidrot, kādi kešatmiņas veidi pastāv, kā arī pareizi iestatīt un pārbaudīt lapas kešatmiņu.
Galvenie jēdzieni: lapas kešatmiņa, pārlūkprogrammas kešatmiņa, Cache-Control, objektu kešatmiņa, Redis, OPcache, CDN, kešatmiņas spraudnis, LiteSpeed Cache, izņēmumi (pieteikušies lietotāji, groza lapa, norēķināšanās), kešatmiņas iztukšošana, divi kešatmiņas spraudņi vienlaikus
Kešatmiņa: nedariet vienu un to pašu darbu divreiz
Kešatmiņa saglabā darba rezultātu, lai nākamajā reizē to nevajadzētu veikt no jauna. WordPress tīmekļa vietnē ir četras vietas, kur tas notiek, sākot no lielākās līdz mazākajai:
| Veids | Kas tiek saglabāts | Kur | Efekts |
|---|---|---|---|
| Lapas kešatmiņa | Pilns lapas HTML kods | Serverī (vai CDN tīklā) | Vislielākais ieguvums: PHP, spraudņi un datubāze tiek pilnībā izlaisti |
| Pārlūkprogrammas kešatmiņa | Stilu lapas, skripti, attēli, fonti | Apmeklētāja pārlūkprogrammā | Nākamā lapa ielādējas ātrāk, jo faili jau ir pieejami |
| Objektu kešatmiņa | Datubāzes vaicājumu rezultāti | Servera atmiņā (Redis, Memcached) | Palīdz tur, kur lapas kešatmiņa nevar, piemēram, pieteikušos lietotāju un interneta veikalu gadījumā |
| OPcache | Pārveidotais PHP kods | PHP atmiņā | PHP nav katru reizi no jauna jālasa faili; lielākajai daļai mitināšanas pakalpojumu sniedzēju tas noklusēti ir ieslēgts |
Lapas kešatmiņa
1.2. nodarbībā to redzējām: bez kešatmiņas WordPress katru reizi, kad lapa tiek apmeklēta, izveido to no jauna. Izmantojot lapas kešatmiņu, pirmais apmeklētājs to izveido, bet visi nākamie saņem saglabāto HTML. Tādā veidā TTFB no vienas sekundes var samazināties līdz dažām simtdaļsekundēm, un Jūsu pakalpojumu pakete var apkalpot daudz vairāk vienlaicīgu apmeklētāju.
Kā iegūt lapas kešatmiņu, ir atkarīgs no Jūsu tīmekļa servera:
- LiteSpeed (daudzi koplietošanas mitināšanas pakalpojumi, tostarp WebOké): tīmekļa serverim ir sava kešatmiņa. Bezmaksas spraudnis LiteSpeed Cache to vada no WordPress puses: kuras lapas drīkst nonākt kešatmiņā, kad tās tiek iztukšotas. Tā kā kešatmiņa atrodas pašā tīmekļa serverī, saglabātai lapai PHP vispār netiek palaists.
- Apache vai nginx: kešatmiņas spraudnis, kas saglabā HTML kā failus, piemēram, WP Super Cache, W3 Total Cache vai maksas spraudnis, piemēram, WP Rocket. Vai arī kešatmiņa, ko mitināšanas pakalpojumu sniedzējs pārvalda servera līmenī.
- Pārvaldītai WordPress mitināšanai bieži vien ir sava kešatmiņa; tajā parasti neinstalē kešatmiņas spraudni.
Izvēlieties vienu risinājumu. Divi kešatmiņas spraudņi vienlaikus (piemēram, LiteSpeed Cache un WP Rocket) traucē viens otram: dubults darbs, lapas, kas netiek iztukšotas, dīvainas kļūdas. LiteSpeed serverī LiteSpeed Cache strādā kopā ar tīmekļa servera kešatmiņu; cits kešatmiņas spraudnis to nespēj.
Kas nedrīkst nonākt kešatmiņā
Lapas kešatmiņa visiem rāda vienu un to pašu HTML. Tas rada problēmas lapām, kas katram apmeklētājam ir atšķirīgas:
- pieteikušies lietotāji (administrēšanas josla, "Sveicināti, Lisa");
- iepirkumu grozs, norēķināšanās un Mans konts interneta veikalā;
- lapas ar veidlapu, kam ir vienreizējs kods (nonce), kura derīguma termiņš beidzas pēc kāda laika;
- lapas, kas atkarībā no atrašanās vietas, valodas vai sīkdatnes rāda kaut ko atšķirīgu.
Labi kešatmiņas spraudņi automātiski izlaiž pieteikušos lietotājus un zināmās WooCommerce lapas. Izmantojot citus spraudņus (dalībnieku sadaļa, rezervēšanas sistēma), izņēmumi jāiestata pašiem. Pazīme, ka kaut kas noiet greizi: apmeklētājs redz kāda cita iepirkumu grozu, vai veidlapa parāda "derīguma termiņš beidzies" vai "nederīgs pieprasījums".
Iztukšošana: kad kešatmiņa ir novecojusi?
Ja Jūs mainiet lapu, saglabātā versija ir jāizdzēš. Kešatmiņas spraudņi, saglabājot ziņu, parasti iztukšo šo lapu, sākumlapu un arhīvus. Mainot izvēlni, tēmu vai logrīku, bieži jāiztukšo visa kešatmiņa. Ja pēc izmaiņām redzat veco versiju, iztukšojiet kešatmiņu (kešatmiņas spraudņa administrēšanas joslā) un pārbaudiet to privātā pārlūka logā, lai Jūsu pašu pārlūkprogrammas kešatmiņa neietekmētu rezultātu.
Pārlūkprogrammas kešatmiņa
Serveris ar galvenēm pasaka pārlūkprogrammai, cik ilgi tā drīkst saglabāt failu:
cache-control: public, max-age=31536000Tas nozīmē: saglabājiet šo failu gadu. Stilu lapām, skriptiem, fontiem un attēliem ilgs laiks ir pilnīgi lieliski, jo WordPress, parādoties jaunai versijai, aiz adreses pievieno citu ?ver= parametru, un pārlūkprogramma to tad uzskata par jaunu failu. Pašam HTML parasti ir īss laiks (vai nekāds), lai apmeklētāji izmaiņas ieraudzītu ātri.
Daudzi mitināšanas pakalpojumu sniedzēji un kešatmiņas spraudņi to nokārto automātiski. Šīs nodarbības uzdevumā Jūs to pārbaudīsiet.
Objektu kešatmiņa un Redis
Lapas kešatmiņa nepalīdz pieteikušos lietotāju gadījumā un iepirkumu groza gadījumā. Tur palīdz objektu kešatmiņa: WordPress saglabā datubāzes vaicājumu rezultātus atmiņā, tādā programmā kā Redis vai Memcached. Nākamajā reizē, kad pienāk tas pats vaicājums, WordPress atbildi iegūst no atmiņas, nevis no datubāzes.
Tas ir īpaši noderīgi interneta veikaliem, dalībnieku tīmekļa vietnēm un vietnēm ar daudziem pieteikušos redaktoriem. Parastai informatīvai tīmekļa vietnei ar lapas kešatmiņu starpība ir neliela. Objektu kešatmiņas izmantošanai nepieciešams, lai Jūsu mitināšanas pakalpojumu sniedzējs piedāvātu Redis vai Memcached; pēc tam to ieslēdz ar spraudni (LiteSpeed Cache to prot, pastāv arī atsevišķi spraudņi).
CDN tīkls
CDN (content delivery network) ir serveru tīkls daudzās vietās pasaulē, kas saglabā Jūsu failu kopijas (un dažkārt arī visas Jūsu lapas). Apmeklētājs tās saņem no tuvākā servera. Tas īpaši palīdz tad, ja apmeklētāji atrodas tālu, un lielas apmeklētības gadījumā. Eiropas tīmekļa vietnei ar Eiropas apmeklētājiem Eiropas serverī ieguvums ir neliels. CDN ar starpniekserveri (piemēram, Cloudflare) maina arī Jūsu DNS un sertifikātu (DNS kursa 7.5. nodarbība); nedariet to, nesaprotot, ko tas dara.
Praksē: kā tas izskatās panelī
Kā piemēru izmantosim LiteSpeed Cache LiteSpeed serverī. Citiem kešatmiņas spraudņiem ir līdzīgi iestatījumi ar citiem nosaukumiem.
- Instalējiet un aktivizējiet LiteSpeed Cache sadaļā Spraudņi > Jauns spraudnis.
- Atveriet LiteSpeed Cache > Cache: "Enable Cache" ir ieslēgts, "Cache Logged-in Users" izslēgts (ja vien nezināt, ko darāt).
- Interneta veikala gadījumā: pārbaudiet sadaļā Neiekļaut, vai tajā ir iekļauts iepirkumu grozs, norēķināšanās un Mans konts (WooCommerce gadījumā tas notiek automātiski).
- Pārējās sadaļas (CSS un JavaScript optimizācija, attēli) sākumā atstājiet izslēgtas. Ieslēdziet tās pa vienai un pārbaudiet pēc katra soļa: tieši šīs sadaļas reizēm sabojā tēmu.
- Pārbaudiet privātā pārlūka logā ar izstrādātāju rīkiem (F12, Tīkls, pirmais pieprasījums): otrajā ielādes reizē ir jāredz
x-litespeed-cache: hit.
Kopsavilkums
- Pastāv četri kešatmiņas veidi: lapas (vislielākais ieguvums), pārlūkprogrammas, objektu un OPcache.
- LiteSpeed serverī LiteSpeed Cache vada tīmekļa servera kešatmiņu; Apache vai nginx gadījumā izmantojiet citu kešatmiņas spraudni. Izvēlieties vienu.
- Pieteikušies lietotāji, iepirkumu grozs, norēķināšanās un personīgās lapas nedrīkst nonākt lapas kešatmiņā.
- Iztukšojiet kešatmiņu pēc izmaiņām izvēlnē vai tēmā un pārbaudiet to privātā pārlūka logā.
- Objektu kešatmiņa (Redis) palīdz interneta veikaliem un pieteikušos lietotājiem; CDN galvenokārt palīdz, ja apmeklētāji ir tālu un ir liela apmeklētība.
Tests
Uzdevums
Uzdevums A6.2: Vai Jūsu lapas kešatmiņa darbojas? Ievadiet savas tīmekļa vietnes adresi. Programma pieprasa sākumlapu divreiz īsā laikā, bez sīkdatnēm, un otrajā reizē pārbauda galvenes, kas norāda uz kešatmiņas trāpījumu (x-litespeed-cache: hit, x-cache: HIT, cf-cache-status: HIT, age vērtība, kas lielāka par 0, vai citas zināmas kešatmiņas galvene). Pēc tam tā pieprasa vienu sākumlapas stilu lapu un pārbauda, vai pārlūkprogramma drīkst to saglabāt vismaz septiņas dienas (cache-control: max-age vai expires). Pierakstiet, kuru kešatmiņu izmantojat.
Papildu lasāmviela
Šajos rakstos aprakstītas darbības WebOké paneļos; citos paneļos tās darbojas līdzīgi.
- DirectAdmin rokasgrāmata 18.3: Mana vietne darbojas lēni
- DirectAdmin rokasgrāmata 15.7: Redis
- Jūsu tīmekļa vietne darbojas lēni vai izmanto pārāk daudz CPU: kā padarīt to ātrāku
- OPcache: 30 sekunžu aizkave pēc PHP faila izmaiņām
- Vai gzip ir aktivizēts DirectAdmin un LiteSpeed vai Apache?
- Kešatmiņa WordPress (developer.wordpress.org, angļu valodā): https://developer.wordpress.org/advanced-administration/performance/cache/
