🚀
Hosting

To'liq sahifa keshi: qachon foydali va qachon xalaqit beradi

08.11.2026
← Barcha maqolalar

Dinamik saytda har bir tashrif odatda bir xil yo'lni bosib o'tadi: veb-server so'rovni PHP'ga uzatadi, PHP bazadan ma'lumot oladi, shablonlarni yig'adi va oxirida HTML sahifa hosil bo'ladi. Agar sahifa mazmuni har bir tashrifchi uchun bir xil bo'lsa, bu ishni har safar qaytadan bajarish ortiqcha. To'liq sahifa keshi tayyor bo'lgan HTML natijani saqlab qo'yadi va keyingi so'rovlarga to'g'ridan-to'g'ri beradi. Bunda PHP ham, baza ham ishlamaydi, shuning uchun javob vaqti keskin qisqaradi va server yuklamasi kamayadi.

To'liq sahifa keshi boshqa kesh turlaridan nimasi bilan farq qiladi

Saytlarda bir nechta kesh qatlami bo'ladi va ularni adashtirmaslik kerak. Brauzer keshi rasm, CSS va JavaScript fayllarini foydalanuvchi kompyuterida saqlaydi. Object cache bazadan olingan alohida ma'lumot bo'laklarini xotirada ushlab turadi, lekin sahifani baribir PHP yig'adi. OPcache esa PHP kodining kompilyatsiya qilingan holatini saqlaydi. To'liq sahifa keshi bulardan eng yuqori darajada ishlaydi: u butun javobni saqlaydi va so'rov PHP'gacha yetib bormaydi.

Shu sababli to'liq sahifa keshi eng katta tezlik beradigan, lekin eng ehtiyotkorlik talab qiladigan usul hisoblanadi. Noto'g'ri sozlansa, bir foydalanuvchining shaxsiy ma'lumotlari boshqasiga ko'rinib qolishi yoki o'zgartirilgan narx soatlab yangilanmasligi mumkin.

Qaysi saytlar uchun ayniqsa foydali

Eng yaxshi natijani mazmuni kam o'zgaradigan va tashrifchilarning ko'pchiligi tizimga kirmaydigan saytlar beradi. Bularga korporativ saytlar, yangiliklar portallari, bloglar, xizmatlar katalogi va maktab yoki klinika saytlari kiradi. Masalan, Samarqanddagi xususiy klinikaning sayti shifokorlar ro'yxati, xizmatlar narxi va manzil sahifalaridan iborat. Bu sahifalar haftada bir-ikki marta yangilanadi, lekin reklama kampaniyasi paytida bir kunda minglab odam ularni ochadi. Kesh yoqilganda har bir sahifa bir marta yig'iladi va keyin xotiradan yoki diskdan beriladi, shuning uchun to'satdan oshgan trafik ham serverni og'irlashtirmaydi.

Yangiliklar saytida ham kesh juda samarali, chunki eng ko'p o'qilayotgan maqola minglab marta bir xil ko'rinishda ochiladi. Hatto kesh muddati bir-ikki daqiqa bo'lsa ham, mashhur sahifada PHP chaqiruvlari soni bir necha barobar kamayadi.

Qachon kesh foyda emas, zarar keltiradi

Har bir foydalanuvchiga alohida ko'rinadigan sahifalarni keshlash mumkin emas. Onlayn do'kondagi savat, buyurtmani rasmiylashtirish, shaxsiy kabinet, administrator paneli va tizimga kirgan foydalanuvchilar uchun sahifalar keshdan chiqarilishi shart. Aks holda bir mijozning savati yoki ismi boshqa mijozga ko'rinishi mumkin. Shuningdek, POST so'rovlari, ya'ni forma yuborish ham keshlanmasligi kerak.

Mazmuni har soniyada o'zgaradigan saytlar, masalan valyuta kurslari yoki jonli natijalarni ko'rsatadigan sahifalar uchun kesh muddati juda qisqa bo'lishi yoki umuman ishlatilmasligi kerak. Tashrifchilarning ko'pchiligi tizimga kirib ishlaydigan ichki tizimlar, CRM yoki o'quv platformalarida to'liq sahifa keshi deyarli foyda bermaydi. Bunday loyihalarda object cache va bazani optimallashtirish samaraliroq.

Nginx'da fastcgi_cache bilan sozlash

O'z VPS'ingizda Nginx va PHP-FPM ishlatsangiz, to'liq sahifa keshini plaginsiz, veb-server darajasida sozlash mumkin. Avval http blokida kesh saqlanadigan joy va kalit belgilanadi:

fastcgi_cache_path /var/cache/nginx/fcgi levels=1:2 keys_zone=PAGECACHE:100m inactive=60m max_size=1g;
fastcgi_cache_key "$scheme$request_method$host$request_uri";

Keyin sayt server blokida qaysi so'rovlar keshlanmasligi aniqlanadi. Quyidagi misol WordPress va WooCommerce uchun odatiy istisnolarni ko'rsatadi:

set $skip_cache 0;
if ($request_method = POST) { set $skip_cache 1; }
if ($query_string != "") { set $skip_cache 1; }
if ($request_uri ~* "/wp-admin/|/wp-login.php|/cart/|/checkout/|/my-account/") { set $skip_cache 1; }
if ($http_cookie ~* "wordpress_logged_in|wp-postpass|comment_author|woocommerce_items_in_cart") { set $skip_cache 1; }

location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/run/php/php8.3-fpm.sock;
    fastcgi_cache PAGECACHE;
    fastcgi_cache_valid 200 301 10m;
    fastcgi_cache_bypass $skip_cache;
    fastcgi_no_cache $skip_cache;
    add_header X-Cache-Status $upstream_cache_status;
}

Kesh papkasini yarating, konfiguratsiyani tekshiring va Nginx'ni qayta yuklang. Socket yo'li serveringizdagi PHP versiyasiga mos bo'lishi kerak:

sudo mkdir -p /var/cache/nginx/fcgi
sudo nginx -t
sudo systemctl reload nginx

Kesh ishlayotganini tekshirish

Yuqoridagi konfiguratsiya har bir javobga X-Cache-Status sarlavhasini qo'shadi. Bir sahifani ketma-ket ikki marta so'rasangiz, birinchisida MISS, ikkinchisida HIT ko'rinishi kerak:

curl -sI https://example.uz/ | grep -i x-cache-status
curl -sI https://example.uz/ | grep -i x-cache-status

Agar savat yoki kabinet sahifalarida BYPASS chiqsa, istisnolar to'g'ri ishlayapti. Tizimga kirgan holda brauzerda sahifani ochib, boshqa brauzerda mehmon sifatida tekshirish ham foydali: ikkinchi oynada administrator paneli satri yoki sizning ismingiz ko'rinmasligi kerak.

Keshni yangilash va muddatni tanlash

Keshning eng nozik tomoni yangilash. Kontent o'zgarganda eski sahifa qancha vaqt ko'rinib turishi kesh muddatiga bog'liq. Kichik muddat, masalan bir necha daqiqa, deyarli har doim yangi ma'lumot beradi va mashhur sahifalarda baribir katta yutuq qoldiradi. Uzoq muddat serverni ko'proq yengillashtiradi, lekin post tahrirlanganda keshni qo'lda yoki avtomatik tozalash mexanizmi kerak bo'ladi. WordPress uchun kesh plaginlari odatda post yangilanganda tegishli sahifalarni o'zi tozalaydi. Nginx keshida esa bu vazifani maxsus plagin yoki kesh papkasini tozalovchi skript bajaradi.

Narxlar tez-tez o'zgaradigan do'konda mahsulot sahifalari uchun muddatni qisqa qilib, bosh sahifa va maqolalar uchun uzunroq qoldirish mumkin. Qaysi sahifa qancha yashashini kontent qanchalik tez-tez yangilanishiga qarab belgilang va o'zgarishdan keyin natijani albatta tekshiring.

Shared hostingda to'liq sahifa keshi

Umumiy hostingda veb-server sozlamalarini o'zgartira olmaysiz, shuning uchun to'liq sahifa keshi odatda CMS plaginlari orqali qilinadi. Bunday plaginlar tayyor sahifalarni diskda statik fayl sifatida saqlaydi va keyingi so'rovlarda ularni beradi. Bu ham sezilarli tezlik beradi, ayniqsa tashrifchilar ko'p bo'lgan blog yoki korporativ saytda. sayt.uz hostingida qaysi kesh usullari qo'llab-quvvatlanishini kabinetdan yoki texnik yordam orqali aniqlashingiz mumkin. Qaysi usulni tanlamang, savat, kabinet va forma sahifalarini keshdan chiqarish qoidasi o'zgarmaydi.

O'xshash maqolalar

🤖 Python botni 24/7 ishlatish: systemd va PM2 bilan barqaror ishga tushirish 🧠 Xotira yetmasligi (OOM): PHP va Python jarayonlari nega o'ldiriladi 🧠 "Allowed memory size exhausted": PHP xotira xatosi va uni to'g'ri hal qilish ⚡ FastAPI'ni serverga joylash: Uvicorn, systemd va Nginx bilan ishonchli deploy
🌐 Til
🇺🇿 O'zbek ✓ 🇺🇿 Ўзбек 🇷🇺 Русский 🇬🇧 English