---
title: 'Mikrokeshēšana nginx+apache un konfigurācijas nianses | Zomro'
description: 'Šis raksts iemācīs jums iestatīt mikrokēšošanu jūsu vietnē.'
image: 'https://dx86q6oq7ry0e.cloudfront.net/uploads/blog/seo%40server-panel.net/2024/09/30/dalle-2024-09-30-100314-a-3d-wireframe-structure-in-vibrant-shades-of-pink-and-purple-with-the-text-nginxapache-in-a-modern-futuristic-font-the-text-should-appear-integ_q50.jpg'
---

![opened image]()

  * [Zomro](https://zomro.com/lv/)
  * [Noderīgi raksti](https://zomro.com/lv/blog/articles/)
  * Mikrokeshēšana nginx+apache un konfigurācijas nianses 



# Mikrokeshēšana nginx+apache un konfigurācijas nianses

30-09-2024

Šajā rakstā mēs apspriedīsim mikrokēšošanu: kāpēc tā ir nepieciešama, kā to iestatīt un kādi slēptie riski var rasties ceļā.

![Mikrokēšošana nginx+apache un konfigurācijas nianses - 1](https://dx86q6oq7ry0e.cloudfront.net/uploads/blog/seo%40server-panel.net/2024/09/30/dalle-2024-09-30-100314-a-3d-wireframe-structure-in-vibrant-shades-of-pink-and-purple-with-the-text-nginxapache-in-a-modern-futuristic-font-the-text-should-appear-integ_q50.jpg)

## 

## **Kas ir mikrokēšošana?**

Mikrokēšošana — tas ir keša veids, kas pilnībā izveido lapu failus un ļauj, nevis veicot pieprasījumu uz aizmugures serveri, izsniegt jau gatavu lapu.

Galvenais šāda keša trūkums, protams, ir tas, ka lapas tiek atjaunotas ļoti reti. Bet kādi tad ir ieguvumi no šāda keša?

Apskatīsim situāciju ar vāju serveri un pietiekami ātru vietni, bet uz to nāk liels skaits pieprasījumu no robotiem. Tie noslogos gan aizmuguri, gan datu bāzi, kas novedīs pie vietnes veiktspējas samazināšanās, un tā tiks ielādēta lēnāk. Šeit palīgā nāk mikrokēšošana: mēs vienkārši izsniedzam jau gatavas lapas, nenoslogojot ne aizmuguri, ne datu bāzes serveri. Arī mikrokēšošana ļauj ielādēt lapas daudzkārt ātrāk, jo nav jāgaida atbilde no aizmugures katra pieprasījuma laikā.

Šāds kešs nav piemērots dinamiskām vietnēm un administrācijas paneļa lapām, bet, ja jums ir lapa, kuru atjaunojat, piemēram, reizi dienā, tad tas ir lielisks variants.

Tagad varam pāriet pie mikrokēšošanas iestatīšanas.

## **Mikrokēšošanas iestatīšana**

Tam mums nepieciešama direktorija, kur tiks glabāts mūsu kešs.

Šajā rakstā tiks izmantota daļa RAM kā vieta diskā, jo tas ir efektīvāk nekā glabāt šādus failus diskā.

Vispirms izveidosim direktoriju, kur tiks glabāts mūsu kešs, mūsu gadījumā `/home/cache`:
    
    
     
    
    
    mkdir /home/cache

Piemontēsim 1 GB RAM kā vietu failiem, izmantojot komandu:
    
    
     
    
    
    mount -t tmpfs -o size=1G tmpfs  /home/cache

Un pievienosim šī apgabala montēšanu katra servera palaišanas laikā (jāievieto šī rinda failā `/etc/fstab`):
    
    
     
    
    
    tmpfs /home/cache tmpfs rw,size=1G 0 0

Tāpat iestatām drošus atļauju iestatījumus direktorijai:
    
    
     
    
    
    chown www-data:www-data -R /home/cache
    
    
    chmod 700 /home/cache

![Mikrokēšošana nginx+apache un konfigurācijas nianses - 2](https://dx86q6oq7ry0e.cloudfront.net/uploads/blog/dmytro.gerasymchuk%40zomro.org/2024/09/30/screenshot_180_q50.jpg)

Gatavs, mēs esam sagatavojuši vietu kešam. Šī risinājuma priekšrocība ir tā, ka servera restartēšanas laikā viss kešs tiek iztīrīts.

Tagad mēs pievērsīsimies potenciālajiem slēptajiem riskiem, kas var traucēt darbu ar kešu, un dēļ kuriem tas nedarbosies, pat ja keša faili tiks izveidoti. Pirmais, kas jādara — iestatīt PHP parametru **`session.cache_limiter`** uz **`public`** , citādi vietnes galvenē tiks norādīts `Pragma: no-cache`, kas neļaus mums izmantot un izveidot kešu pareizi.

![Mikrokēšošana nginx+apache un konfigurācijas nianses - 3](https://dx86q6oq7ry0e.cloudfront.net/uploads/blog/dmytro.gerasymchuk%40zomro.org/2024/09/30/screenshot_184_q50.jpg)

Otrais slēptais risks — nepieciešams pievienot rindu failā `.htaccess` jūsu vietnei. Ieteicams iestatīt `max-age` tāpat kā pārējo kešu, lai kešs novecotu:
    
    
     
    
    
    Header set Cache-Control "max-age=300, public"

![Mikrokēšošana nginx+apache un konfigurācijas nianses - 4](https://dx86q6oq7ry0e.cloudfront.net/uploads/blog/dmytro.gerasymchuk%40zomro.org/2024/09/30/screenshot_181_q50.jpg)

Tagad mēs varam būt droši, ka gandrīz nekas netraucēs mums izmantot kešu. Visvairāk svarīgāko atstāšu noslēgumā, proti, Nginx iestatīšanu.

Failā `/etc/nginx/nginx.conf` jāievieto šādas rindas sadaļā `http`:
    
    
     
    
    
    proxy_cache_path /home/cache levels=1:2 keys_zone=global_cache:100m max_size=1g inactive=5m;
    proxy_cache_valid any 5m;
    proxy_cache_valid 200 5m;
    proxy_cache_valid 404 15s;
    proxy_cache_use_stale error timeout invalid_header updating http_500 http_503;
    proxy_cache_lock on;

![Mikrokēšošana nginx+apache un konfigurācijas nianses - 5](https://dx86q6oq7ry0e.cloudfront.net/uploads/blog/dmytro.gerasymchuk%40zomro.org/2024/09/30/screenshot_182_q50.jpg)

Vietnes konfigurācijas failā blokā `location /` jāievieto šādas rindas: **``**
    
    
    location / {
    proxy_cache global_cache;
    add_header X-Cache-Status $upstream_cache_status;
    proxy_cache_key $host$request_uri;
    proxy_ignore_headers "Set-Cookie";
    proxy_pass http://backend;
    }

![Mikrokēšošana nginx+apache un konfigurācijas nianses - 6](https://dx86q6oq7ry0e.cloudfront.net/uploads/blog/dmytro.gerasymchuk%40zomro.org/2024/09/30/screenshot_183_q50.jpg)

ISPManager gadījumā šīs rindas jāievieto blokā `location @fallback`, jo visi pieprasījumi uz aizmuguri notiek caur šo bloku.

Tagad izskaidrošu, par ko katra rinda, ko mēs pievienojām konfigurācijās, ir atbildīga:

  * `proxy_cache_path /home/cache levels=1:2 keys_zone=global_cache:100m max_size=1g inactive=5m;`

    * **proxy_cache_path** — ceļš, kur tiks glabāts kešs.
    * **levels=1:2** — var izmantot ne vairāk kā 3 iedziļinājumus (piemēram, 1:2:3). Cipari atbild par simbolu skaitu keša direktoriju nosaukumos, kas nepieciešams ātrai darbībai uz lēniem diskiem. Ja izmantosiet tikai `levels=1`, uz lēniem diskiem keša lietderība būs maza, jo tiks izveidots liels skaits failu. Ieteicams izmantot jau gatavu iestatījumu.
    * **keys_zone=global_cache:100m** — zonas nosaukums, uz kuru vēršas mūsu vietnes. Ja kešs ir iestatīts uz zonu `global_cache`, tas meklēs failus tieši direktorijā `/home/cache`. `100m` — keša nosaukumu zonas lielums.
    * **max_size=1g** — kopējais keša lielums.
    * **inactive=5m** — laiks, kurā kešs tiek uzskatīts par aktīvu. Ja uz kešu netiek vērsta uzmanība šajā laikā, sistēma to uzskata par neaktīvu un var to dzēst.
  * `proxy_cache_valid any 5m;` — laiks, kurā tiks glabāts kešs. `any` nozīmē, ka visi HTTP kodi, izņemot atsevišķi norādītos, tiks glabāti 5 minūtes.

  * `proxy_cache_use_stale error timeout invalid_header updating http_500 http_503;` — ļauj izmantot novecojušu kešu norādītajās kļūdās.

  * `proxy_cache_lock on;` — neļauj izveidot vienādus kešus no vairākiem pieprasījumiem vienlaicīgi.

  * `proxy_cache global_cache;` — norāda, kuru keša zonu izmantos vietne.

  * `proxy_cache_key $host$request_uri;` — keša statusa pārbaude. Ja galvenē būs `X-Cache-Status: HIT`, tad viss ir pareizi iestatīts. Ja `MISS`, tad jāmeklē iemesli.

  * `proxy_ignore_headers "Set-Cookie";` — ļauj veikt pieprasījumu, ignorējot sīkdatnes. Bez tā kešs neparādīs `HIT`, jo katrs pieprasījums būs unikāls.

  * `proxy_pass http://backend;` — šeit jānorāda aizmugures servera IP un ports (piemēram, `localhost:8080`, ja tiek izmantots Apache2 kā aizmugures serveris).




Keša statusu var pārbaudīt ar komandu:
    
    
     
    
    
    curl -I http://Jūsu_vietne

​​​​​​​![Mikrokēšošana nginx+apache un konfigurācijas nianses - 7](https://dx86q6oq7ry0e.cloudfront.net/uploads/blog/dmytro.gerasymchuk%40zomro.org/2024/09/30/screenshot_185_q50.jpg)

Atbildē būs galvene `X-Cache-Status: HIT` (vai `MISS`, `BYPASS`). Viss, kas nav `HIT`, — ir kļūda.

Gatavs. Mēs esam iestatījuši mikrokēšošanu vietnē.

*Vietne articlesite.com izveidota īpaši šim rakstam.

Tāpat piedāvājam apsvērt citas noderīgas rakstus: 

  * [Kā uzstādīt failu pārvaldnieku FileGator uz Centos 7. (Apache-Nginx)](https://zomro.com/rus/blog/faq/380-how-to-install-the-filegator-file-manager-on-centos-7-apache-nginx)
  * [No nulles līdz varonim: LEMP servera izveide uz Rocky Linux 9](https://zomro.com/rus/blog/faq/499-from-zero-to-hero-building-a-lemp-server-on-rocky-linux-9)
  * [Noderīgi padomi ISPManager lietotājiem](https://zomro.com/rus/blog/articles/324-helpful-tips-and-hacks-for-ispmanager-users)



Līdzīgie raksti

[Kas ir RAID: veidi, iezīmes, priekšrocības un trūkumi](https://zomro.com/lv/blog/articles/505-what-is-raid-types-features-advantages-and-disadvantages) [Kā nopelnīt naudu ar specializētu serveri?](https://zomro.com/lv/blog/articles/171-kak-zarabotat-na-vydelennom-servere) [SystemRescue attēla savienošana ar virtuālo serveri](https://zomro.com/lv/blog/articles/150-podkljuchenie-obraza-systemrescue-k-virtualnoj-mashine) [Iestatīšana lokālajās tīklos Windows un Linux failu serveriem](https://zomro.com/lv/blog/articles/527-setting-up-file-servers-in-local-networks-on-windows-and-linux) [SSH komandu automātiskās pabeigšanas konfigurācija no faila .ssh/config](https://zomro.com/lv/blog/articles/538-configuration-of-automatic-augmentation-of-ssh-commands-from-the-sshconfig-file)

[ Serveris ar GPU no €174.80/mēn. ](/dedicated-servers/type=gpu)
