Bu konu, CDN önbellek senaryolarındaki sorunları belirtilere göre özetler: önbelleğe almanın devreye girmemesi ve önbellek isabetlerinin olmaması, düşük önbellek isabet oranı ve yüksek kaynaktan çekme oranı, yanıt üstbilgisi ve CORS istisnaları, video ve büyük dosya istisnaları ile içeriğin güncellenmemesi ve erişim istisnaları.
Genel ön kontrol adımları
Bu konu, hızlandırılmış alan adı zaten eklendiğinde ve CNAME çözümlemesi etkili olduğunda Alibaba Cloud CDN için geçerlidir. Dynamic Route for CDN (DCDN) kullanıyorsanız bazı yapılandırma giriş noktaları ve özellik adları farklı olabilir. Gerçek konsol gösterimine bakın.
Aşağıdaki kontrol maddeleri çoğu önbellek sorunu için geçerlidir. Çevresel etkileşimden kaynaklanan hatalı sonuçlardan kaçınmak için sorun gidermeye başlamadan önce bunları tek tek tamamlamanızı öneririz:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Bu konuda, önbellek sona erme süresini 0 saniye olarak ayarlama işlemi birkaç yerde geri dönüş ölçütü olarak kullanılır. 0 saniyelik sona erme süresi, her isteğin kaynaktan çekmeyi tetiklemesi anlamına gelir; bu durum kaynak sunucunun yükünü önemli ölçüde artırır ve hızlandırma etkisini azaltır. Bunun yalnızca API uç noktaları gibi gerçek zamanlı yanıtlar gerektiren dinamik içerikler için kullanılmasını öneririz. Statik kaynaklar için genel olarak yapılandırmayın.
Önbellek isabetinin olup olmadığını belirleme
Önbellek sorunlarını gidermeden önce, kaynağın önbellek durumunu onaylamak için yanıt üstbilgilerini kontrol edin:
GET isteği kullanarak yanıt üstbilgilerini kontrol edin:
curl -v -o /dev/null "http(s)://accelerated-domain/resource-path"komutunu çalıştırın. Bazı senaryolardacurl -Iisteği (HEAD isteği), POP üzerindeki kaynak gövdesi için gerçek önbellek mantığını tetiklemeyebilir ve bu da yanlış bir önbellek isabeti yok sonucuna yol açabilir. Doğrulama için GET isteği kullanmanızı öneririz.İsabet durumunu belirlemek için X-Cache'i kontrol edin:
HITdeğeri önbellek isabetini gösterir.MISSdeğeri veya bu alanın bulunmaması, önbellek isabeti olmadığını ve isteğin kaynaktan çekmeyi tetiklediğini gösterir.Kalan önbellek süresini belirlemek için Age ve X-Swift-CacheTime değerlerini kontrol edin:
Agedeğeri, kaynağın POP üzerinde önbellekte kaldığı saniye sayısını gösterir ve X-Cache ile birlikte yorumlanmalıdır. X-Cache MISS ise ve Age 0 ise istek kaynaktan çekmeyi tetiklemiştir. X-Cache HIT ancak Age 0 ise kaynak 1 saniyeden daha kısa bir süre önce önbelleğe alınmıştır.X-Swift-CacheTimedeğeri toplam izin verilen önbellek süresini gösterir. Kalan süre, X-Swift-CacheTime eksi Age değerine eşittir.İsteğin CDN üzerinden geçtiğini onaylayın:
Serveryanıt üstbilgisiAliyunOSSveyanginxgibi bir kaynak tanımlayıcısı gösteriyorsa ve X-Cache ile X-Swift-CacheTime gibi CDN yanıt üstbilgileri yoksa istek CDN POP'unu atlamış ve doğrudan kaynak sunucuya gitmiştir. Son çözümleme sonucunu onaylamak içindig accelerated-domainveyanslookup accelerated-domainkomutunu çalıştırın. Yalnızca CDN tarafından atanan CNAME kaydını tutun ve kaynak sunucu IP'sine işaret eden A/AAAA kayıtları ile kaynak sunucu alan adına işaret eden CNAME kayıtlarını silin.
Önbelleğe almanın devreye girmemesi ve önbellek isabetlerinin olmaması
Bir önbellek kuralı yapılandırdıktan sonra istek hala kaynaktan çekmeyi mi tetikliyor veya önbelleği mi ıskalıyor?
Önbellek sona erme süresi 0 olarak ayarlandı ancak eriştiğim içerik hala en güncel değil?
Mobil ve PC isteklerini ayırt etmek için özel bir önbellek anahtarı yapılandırdım ancak devreye girmiyor?
Düşük önbellek isabet oranı ve yüksek kaynaktan çekme oranı
Önbellek isabet oranı düşük, kaynaktan çekme oranı yüksek veya kaynak bant genişliği doymuş mu?
Ana sayfa isteğinin X-Cache değeri her zaman MISS oluyor ve bu da düşük önbellek isabet oranına neden oluyor. Bunu nasıl çözebilirim?
Önbellek isabet oranında ani bir düşüşün olası nedenleri nelerdir?
Yanıt üstbilgisi ve CORS istisnaları
Access-Control-Allow-Origin yapılandırdım ancak istekler hala CORS hataları bildiriyor?
Özel bir yanıt üstbilgisi etkili olmuyor?
CDN hızlandırmasından sonra bir sayfa bozuk görünüyor. Bunu nasıl ele alabilirim?
Video indirme veya önizlemeyi kontrol etmek için bir yanıt üstbilgisi yapılandırdım ancak devreye girmiyor. Ne yapmalıyım?
Bir JavaScript dosyası yanlışlıkla text/html olarak işleniyor. Bunu nasıl çözebilirim?
Video ve büyük dosya istisnaları
Video oynatma sırasında ERR_CONTENT_LENGTH_MISMATCH hatası oluşuyor?
Günlüklerde birçok 206 durum kodu veya birden çok kaynaktan çekme görmek normal midir?
İçerik ve erişim istisnaları
Statik kaynaklar önbelleği isabet ediyor ancak ana sayfa hala yavaş yükleniyor?
CDN üzerinden erişim kaynak sunucuya doğrudan erişimden farklı bir sonuç döndürüyor?
CDN üzerinden indirilen dosya kaynak sunucudakiyle tutarsız (aynı adla güncelleme). Bunu nasıl çözebilirim?
Bir kaynağa eriştiğimde neden özel bir 404 sayfası görünüyor?
Özel bir 403 sayfası yapılandırdıktan sonra alan adı yönlendirmesi veya yönlendirme döngüsü oluşuyor. Bunu nasıl ele alabilirim?
Sorun çözülmezse ne yapılmalı
Destek talebi göndermeden önce sorunu şu şekillerde kendiniz bulmanızı öneririz:
Gerçek zamanlı günlükleri kontrol edin: Konsolda belirli isteğin önbellek durumunu, kaynaktan çekme durumunu ve yanıt kodu dağılımını kontrol ederek sorunun hangi URL'lerde veya zaman dilimlerinde yoğunlaştığını belirleyin.
Konsol tanılama aracını kullanın: Algılama için sorunlu URL'yi girerek çözümleme, kaynaktan çekme ve yanıt üstbilgisi bilgilerini hızla edinin.
Karşılaştırma testleri yapın: Aynı kaynağa sırasıyla CDN üzerinden ve doğrudan kaynak sunucudan erişin, yanıt üstbilgileri ve içerikteki farklılıkları karşılaştırın ve sorunun CDN tarafında mı yoksa kaynak sunucu tarafında mı olduğunu belirleyin.
Kendi kendine sorun gidermeden sonra sorun çözülmezse tanımlamayı hızlandırmak için destek talebi göndermeden önce aşağıdaki bilgileri toplamanızı öneririz:
Hızlandırılmış alan adı ve belirli istek URL'si.
Sorunu yeniden üreten tam
curl -vçıktısı (istek üstbilgileri ve yanıt üstbilgileri dahil).Sorunun meydana geldiği yaklaşık zaman, bölge ve ISS.
Kaynak sunucu türü (OSS, ECS, SLB, üçüncü taraf kaynak sunucu vb.) ve kaynak sunucunun aralık isteklerini destekleyip desteklemediği.
Denemiş olduğunuz sorun giderme adımları ve her adımın sonucu.
Sorun önbellek isabet oranını içeriyorsa konsoldaki isabet oranının ekran görüntüsünü ve ilgili zaman aralığını sağlayın.