Misafirler için CDN ve LiteSpeed Önbellek (Cache) Engeli

3 Yanıtlar 26 Görüntülenme Bug
·
Katılımcılar
Konuyu Açan #0
Sistemde misafirler için CloudFront/CDN ve LiteSpeed önbelleği (cache) çalışmıyordu, bu da sunucuyu (CPU/MariaDB) gereksiz yorup anlık hitlerde çökmelere sebep oluyordu. Sorunun kaynağını bulup kendi tarafımda şu şekilde hallettim, sonraki güncelleme için fix önerisi olarak sunmak isterim:

Dosya: src/App/Http/Middleware/SecurityHeadersMiddleware.php
Sorun: Sistem misafir/üye ayrımı yapmadan herkese zorla private ve no-cache header'ı basıyor, bu yüzden CDN'ler sayfayı hafızaya alamıyor.

Benim Çözümüm:

applyPublicCacheControl altındaki private, max-age= değerini public, max-age= olarak değiştirdim.

applyLiteSpeedCacheControl altındaki no-cache değerini public olarak güncelledim.

Sonuç: Bu ufak değişiklikle CloudFront ve LSCache tam kapasite devreye girdi. Sitenin global yüklenme hızı 4 saniyelerden 0.1 saniyelere (Hit) düştü ve sunucu yükü neredeyse sıfırlandı.

1.png
#1
İMRAN şöyle dedi:
Sistemde misafirler için CloudFront/CDN ve LiteSpeed önbelleği (cache) çalışmıyordu, bu da sunucuyu (CPU/MariaDB) gereksiz yorup anlık hitlerde çökmelere sebep oluyordu. Sorunun kaynağını bulup kendi tarafımda şu şekilde hallettim, sonraki güncelleme için fix önerisi olarak sunmak isterim:

Dosya: src/App/Http/Middleware/SecurityHeadersMiddleware.php
Sorun: Sistem misafir/üye ayrımı yapmadan herkese zorla private ve no-cache header'ı basıyor, bu yüzden CDN'ler sayfayı hafızaya alamıyor.

Benim Çözümüm:

applyPublicCacheControl altındaki private, max-age= değerini public, max-age= olarak değiştirdim.

applyLiteSpeedCacheControl altındaki no-cache değerini public olarak güncelledim.

Sonuç: Bu ufak değişiklikle CloudFront ve LSCache tam kapasite devreye girdi. Sitenin global yüklenme hızı 4 saniyelerden 0.1 saniyelere (Hit) düştü ve sunucu yükü neredeyse sıfırlandı.

1.png


Gelecek güncelleme ile bir düzenleme getireceğiz.
#2
@İMRAN 

Teşhisiniz doğru, misafir sayfaları gerçekten paylaşımlı önbelleğe girmiyordu ve sunucu yükü buradan geliyordu. Ancak uyguladığınız yöntemi lütfen geri alın, özellikle ikincisini.
CODE
1applyLiteSpeedCacheControl

 içindeki 
CODE
1no-cache

 değeri yalnızca misafir sayfaları için değil; 
CODE
1public

 olmayan hercevabın varsayılan dalıdır. 
CODE
1public

 yapıldığında giriş yapmış üye sayfaları, 
CODE
1/admin


CODE
1/account


CODE
1/conversations

 ve şifre sıfırlama sayfaları da LSCache'e "saklanabilir" diye işaretlenir. 
CODE
1X-LiteSpeed-Cache-Control

 başlığı 
CODE
1Cache-Control

'ü ezdiği için, sistem sayfayı 
CODE
1private

 işaretlese bile bu satır onu tekrar paylaşıma açar. Birinci değişiklik ise tüm anonim ziyaretçilere tek bir oturum çerezi ve tek bir CSRF anahtarı dağıtır; bunun sonucu form gönderimlerinde "403 — Security check failed" hatasıdır.
İhtiyacınız olan şey 1.8.3'te hazır: yönetim panelinde Performans → Paylaşımlı Misafir Sayfa Önbelleği (CDN / LiteSpeed). Bu seçenek açıldığında misafire oturum çerezi hiç verilmez ve sayfa kişiye özel güvenlik anahtarı taşımaz — yani 
CODE
1public

 işaretlemek artık gerçekten güvenlidir. Ölçtüğümüz çıktı: 
CODE
1public, max-age=300, s-maxage=300


CODE
1Set-Cookie

 yok. Üye ve yönetim sayfaları etkilenmez.
Lütfen sırasıyla: düzenlediğiniz iki satırı orijinaline döndürün, 1.8.3'e güncelleyin, seçeneği açın, ardından CDN tarafında çerez ilet(me) ayarını yapın. Edge yapılandırmasını size ayrıca göndereceğim.[/quote]
Konuyu Açan #3
tamamdır

Yanıt vermek için giriş yapmış olmalısınız.

0 alıntı seçildi