Tümüyle işlenmiş bir sayfayı önbelleğe almak 400 ms'lik bir isteği 5 ms'ye indirir. Aynı zamanda herkesin aynı sayfayı alması demektir - bir makale için tastamam doğru, bir sepet, bir gösterge paneli ya da ziyaretçinin adını anan herhangi bir şey için tastamam yanlış.

Kural

Bir yanıtı ancak bir yabancı için de birebir aynı olacaksa önbelleğe alın. Herhangi bir parçası soranın kim olduğuna bağlıysa ya hiç önbelleğe almayın ya da o parçayı önbelleklenen HTML'den çıkarıp ayrıca getirin.

Asla önbelleğe alınmaması gerekenler

  • Bir girişin ardındaki her şey - başlıkta oturum durumunu gösteren sayfa dahil.
  • Sepet, ödeme, hesap ve sipariş sayfaları.
  • İçinde CSRF belirteci olan her şey - paylaşılan bir belirteç, belirteç değildir. Bakınız CSRF ve formlar.
  • İçinde kişisel geçmiş bulunan arama sonuçları.

Önbelleğe neyin değiştiğini söyleyin

# skip the cache when a session cookie is present
fastcgi_cache_bypass $cookie_session $http_authorization;
fastcgi_no_cache   $cookie_session $http_authorization;

Hangisini aldığınızı kanıtlayın

add_header X-Cache-Status $upstream_cache_status;

curl -sSI https://yourdomain.com/ | grep -i x-cache

O başlıktaki HIT, MISS ve BYPASS, bir öğleden sonra boyunca yapılandırma okumanın yanıtlayamayacağını bir saniyede yanıtlar. Oturum açılmış bir sayfa HIT diyorsa durun ve başka hiçbir şey yapmadan önce onu düzeltin.

İşin öbür yarısı: geçersiz kılma

Hiç temizlenmeyen bir önbellek dünkü fiyatı gösterir. Yayımda temizleyin ve bir dağıtım şablonları değiştirdiğinde her şeyi elle nasıl temizleyeceğinizi bilin.

Oturum açıkken, gizli değil olağan bir pencerede deneyin. Bu türden neredeyse her önbellek sızıntısını geliştirici değil bir müşteri bulmuştur, çünkü geliştirici hep yalnızca oturumu kapalı denemiştir.
EGPHP barındırmasında sayfa önbelleği, giriş ve ödeme yolları önceden dışarıda bırakılmış olarak ayarlanır. Bu yazı, kuralları sizin yazdığınız bir sanal sunucu içindir.