2026. gadā ielādes ātrumam jāiekļaujas Dohertija 400ms slieksnī, kur tīrs kods un servera kešatmiņa pilnībā izkonkurē smagnējus spraudņus. Uzziniet vairāk mūsu Mājaslapas ātruma optimizācija.
Lielu mārketinga kampaņu laikā apmeklētāju plūsma var pieaugt 10-20 reizes, radot servera pārslodzi un 504 Gateway Timeout kļūdas. Standarta PHP procesi nespēj vienlaikus apkalpot simtiem pieprasījumu; risinājums ir Nginx FastCGI microcaching, kas statiskās lapas servē tieši no RAM atmiņas mazāk nekā 10 milisekundēs, saglabājot vietni stabilu pie jebkuras slodzes.
Lielākais murgs jebkuram uzņēmējam ir situācija, kad dārgi apmaksātā reklāmas kampaņa beidzot sāk nest tūkstošiem apmeklētāju, bet mājaslapa pēc piecām minūtēm kļūst nepieejama un rāda "504 Gateway Timeout" vai "502 Bad Gateway" kļūdas paziņojumu. Katra dīkstāves minūte šādā brīdī nozīmē simtiem vai tūkstošiem eiro negūtu ieņēmumu un neatgriezeniski zaudētu pircēju uzticību.
Daudzi kļūdaini uzskata, ka risinājums ir dārgāks serveris, taču uzticama serveru uzturēšana ar Nginx arhitektūru panāk stabilitāti ar pareizu konfigurāciju. Tomēr praksē pat 32 kodolu serveris bez pareizas kešatmiņas arhitektūras sabrūk jau pie 100 vienlaicīgiem dinamiskiem PHP pieprasījumiem. Šajā tehniskajā pamācībā parādīsim, kā ar atvērtā koda rīkiem veikt reālu slodzes testēšanu un ieviest Nginx FastCGI mikrokešatmiņu, kas ļauj parastam virtuālajam serverim bez piepūles apkalpot tūkstošiem pieprasījumu sekundē.
1. Solis - Reālistiska slodzes testa izveide ar k6
Vienkārša vienas lapas pingēšana nesniedz patiesu priekšstatu par to, kā vietne uzvedīsies, kad reāli lietotāji meklēs produktus, pievienos preces grozam un pārlūkos kategorijas. Slodzes testam ir jābūt daudzpakāpju scenārijam. Rīks k6 ir ideāli piemērots, jo tas ļauj rakstīt scenārijus modernā JavaScript sintaksē.
import http from 'k6/http';
import { check, sleep } from 'k6';
export const options = {
stages: [
{ duration: '1m', target: 50 }, // Iesildīšanās līdz 50 lietotājiem
{ duration: '3m', target: 200 }, // Pīķa slodze: 200 vienlaicīgi lietotāji
{ duration: '1m', target: 0 }, // Atslābums
],
thresholds: {
http_req_duration: ['p(95)<400'], // 95% atbilžu jābūt zem 400ms
http_req_failed: ['rate<0.01'], // Kļūdu skaits zem 1%
},
};
export default function () {
// 1. Apmeklē sākumlapu
let res1 = http.get('https://marketmenow.eu/');
check(res1, { 'status ir 200': (r) => r.status === 200 });
sleep(1);
// 2. Pārlūko pakalpojumu sadaļu
let res2 = http.get('https://marketmenow.eu/majaslapu-izstrade/');
check(res2, { 'pakalpojumu lapa ielādēta': (r) => r.status === 200 });
sleep(2);
}
Kad tiek veikta profesionāla mājaslapas ātruma optimizācija, šāds slodzes tests precīzi atklāj vājās vietas pirms reālā mārketinga starta.
"Katrs dinamisks WordPress lapas pieprasījums prasa 50 līdz 150 datubāzes vaicājumus un simtiem PHP failu interpretāciju. Ja jums vienā minūtē atnāk 1,000 apmeklētāju, tas nozīmē 100,000 datubāzes vaicājumu. Nginx FastCGI mikrokešatmiņa saglabā gatavu HTML atbildi uz 5 līdz 60 sekundēm RAM atmiņā. Rezultātā PHP un MySQL netiek lieki darbināti vispār, un lapas atbildes laiks krītas no 800ms uz 8ms."
2. Solis - Nginx FastCGI mikrokešatmiņas ieviešana
Mikrokešatmiņas (microcaching) noslēpums ir ļoti īss kešatmiņas laiks (piemēram, 10 sekundes statiskajām lapām un emuāram). Tas nozīmē, ka saturs apmeklētājiem vienmēr ir svaigs, bet pēkšņos pīķos visi 500 apmeklētāji saņem vienu un to pašu iepriekš uzģenerēto HTML failu tieši no Nginx atmiņas.
# 1. Definē kešatmiņas ceļu Nginx konfigurācijas sākumā (ārpus server bloka)
fastcgi_cache_path /var/run/nginx-cache levels=1:2 keys_zone=WORDPRESS:100m inactive=60m max_size=1g;
fastcgi_cache_key "$scheme$request_method$host$request_uri";
fastcgi_cache_use_stale error timeout invalid_header updating http_500 http_503;
# 2. Servera blokā definē izņēmumus (Grozi, kases, autorizēti lietotāji)
set $skip_cache 0;
if ($request_method = POST) {
set $skip_cache 1;
}
if ($query_string != "") {
set $skip_cache 1;
}
if ($request_uri ~* "/wp-admin/|/xmlrpc.php|wp-.*.php|/cart/|/checkout/|/my-account/") {
set $skip_cache 1;
}
if ($http_cookie ~* "comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_no_cache|wordpress_logged_in") {
set $skip_cache 1;
}
# 3. PHP lokācijā pieslēdz kešatmiņu
location ~ \.php$ {
fastcgi_cache WORDPRESS;
fastcgi_cache_valid 200 301 302 10s;
fastcgi_cache_bypass $skip_cache;
fastcgi_no_cache $skip_cache;
add_header X-FastCGI-Cache $upstream_cache_status;
include fastcgi_params;
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
}
3. Solis - Veiktspējas salīdzinājums pirms un pēc
Šādu stabilitāti demonstrē arī moderna mājaslapu izstrāde ar tīru kodu, par ko liecina reāli rādītāji testā ar 200 aktīviem lietotājiem:
| Metrika | Standarta PHP-FPM bez kešatmiņas | Nginx FastCGI mikrokešatmiņa |
|---|---|---|
| Pieprasījumi sekundē (RPS) | 18 RPS (sistēma nosmok) | 1,450+ RPS (brīva jauda) |
| Servera atbildes laiks (TTFB) | 1,850 ms (kavēšanās) | 12 ms (zibenīgs) |
| CPU noslodze pīķa brīdī | 100% (bloķēti procesi) | 14% (optimāls režīms) |
| Kļūdu biežums (502 / 504) | 34.2% kļūdu | 0.00% kļūdu |
Servera pārbaudes soļi pirms lielajām izpārdošanām
X-FastCGI-Cache: HIT publiskajām lapām.BYPASS.Biežāk uzdotie jautājumi par servera veiktspēju un mikrokešatmiņu
Kas ir Nginx FastCGI mikrokešatmiņa (microcaching)?
Tā ir tehnoloģija, kas kešo dinamiskas lapas servera operatīvajā atmiņā uz ļoti īsu laiku (piem., 1 līdz 5 sekundēm). Tā rezultātā tūkstošiem lietotāju saņem lapu acumirklī, neapgrūtinot PHP un datubāzi.
Kā mikrokešs darbojas ar e-veikalu groziem un lietotāju profiliem?
Pareizi konfigurēts Nginx ignorē kešu tikai autorizētiem lietotājiem un sesijām, kurās ir aktīvs grozs, nodrošinot, ka personalizētie dati paliek 100% dinamiski.
Ar kādiem rīkiem veikt servera slodzes testus?
Nozares standarti ir k6 vai Locust, kas ļauj simulēt pakāpenisku slodzes pieaugumu (piem., no 50 līdz 1000 paralēliem apmeklētājiem) un atklāt servera vājās vietas pirms reālās kampaņas.
Vēlaties zibenīgu mājaslapas ielādi un zaļo zonu Google PageSpeed testā?
Piesakiet 15 minūšu sarunu. Veiksim detalizētu koda un servera auditu, atbrīvojot vietni no bremzējošiem spraudņiem un bibliotēkām.
Fiksēts budžets. Nekādu slēptu papildmaksu vai uzspiestu pakalpojumu.