Tüm Ürünler
Search
Belge Merkezi

CDN:Cache troubleshooting

Son Güncelleme:Oct 01, 2026

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ı

Not

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:


Kontrol maddesi


Açıklama


CNAME çözümlemesinin doğru olduğunu doğrulayın

dig accelerated-domain komutunu çalıştırın ve son çözümlemenin CDN tarafından atanan CNAME'e işaret ettiğinden, kaynak sunucuya işaret eden kalan A/AAAA kaydı olmadığından emin olun.


Yapılandırmanın dünya çapında etkili olduğunu doğrulayın


Konsoldaki kural durumu Success olmalıdır. Yapılandırmanın dünya çapındaki POP'lara dağıtılması genellikle 3 ila 5 dakika sürer.


Yerel tarayıcı önbelleğini hariç tutun


Tarayıcı önbelleğinin etkileşimini önlemek için gizli tarama modunda veya curl kullanarak test edin.


Mevcut CDN önbelleğini temizleyin


Yeni bir yapılandırma, etkili olduktan sonra yalnızca yeni istekler için geçerli olur. Önceki ilke kapsamında önbelleğe alınan kaynaklar için Yenileme ve ön getirme işlevini kullanarak bir URL yenileme veya dizin yenileme işlemi gönderin.

Not

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ı senaryolarda curl -I isteğ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: HIT değeri önbellek isabetini gösterir. MISS değ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: Age değ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-CacheTime değ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: Server yanıt üstbilgisi AliyunOSS veya nginx gibi 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çin dig accelerated-domain veya nslookup accelerated-domain komutunu ç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?

Sorun giderme adımları:

  1. Yapılandırmanın etkili olduğunu onaylayın: Bir önbellek kuralı ekledikten veya değiştirdikten sonra kural durumu Configuring olarak gösterilir; bu, yapılandırmanın dünya çapındaki POP'lara dağıtıldığı anlamına gelir. Durum genellikle birkaç dakika içinde Success olarak değişir. Yapılandırma etkili olmadan kuralı hemen doğrulamaya çalışmayın.

  2. Yeni kuralın hedef kaynak için geçerli olduğunu onaylayın: Yeni kural yalnızca yeni istekler için geçerlidir. POP'lerde zaten önbelleğe alınmış kaynaklar, sona erene kadar önceki ilke kapsamında hizmet vermeye devam eder. Kuralı hemen uygulamak için önce Yenileme ve ön getirme işlevini kullanarak önceki önbelleği temizleyin.

  3. Kural eşleştirme önceliğini kontrol edin: Bir istek birden çok kuralı eşleştirdiğinde yalnızca bir kural etkili olur. Varsayılan olarak daha yüksek ağırlığa sahip kural önceliklidir. Ağırlıklar eşit olduğunda genellikle daha sonra oluşturulan kural önceliklidir (konsoldaki gerçek açıklamaya bakın). Hedef yolun eşleştirdiği kuralın en yüksek ağırlığa sahip olduğundan emin olun. Örneğin, belirli bir dizinin (/static/) ağırlığı kök dizinin (/) ağırlığından yüksek olmalıdır.

  4. Kaynak yanıt üstbilgilerinin önbelleğe almayı engelleyip engellemediğini kontrol edin: Kaynak sunucu Cache-Control: no-cache, no-store, max-age=0 veya Pragma: no-cache döndürürse CDN varsayılan olarak kaynak yönergesini izler. Farklı yönergelerin kaynaktan çekme davranışı üzerindeki etkisi için aşağıdaki tabloya bakın. Konsol kurallarına dayalı önbelleğe almayı zorlamak için önbellek kuralında Kaynak sunucudan gelen no-cache üstbilgilerini yoksay özelliğini etkinleştirebilir veya statik kaynaklar için no-cache yönergelerini kaldırmak üzere kaynak sunucu yapılandırmasını ayarlayabilirsiniz.

  5. URL parametrelerinin nasıl işlendiğini kontrol edin: URL parametreler içeriyorsa ve Parametreleri yoksay devre dışı bırakılmışsa farklı parametrelere sahip URL'ler farklı kaynaklar olarak kabul edilir ve bu durum önbellek isabet oranını düşürür. Parametreleri yoksay veya Belirtilen parametreleri sakla özelliğini etkinleştirebilirsiniz.

  6. Kök dizinin önbelleğe alınmayacak şekilde yanlış yapılandırılıp yapılandırılmadığını kontrol edin: Kök dizin (/) kuralının en yüksek ağırlığı varsa ve sona erme süresi 0 saniye olarak ayarlanmışsa tüm istekler kaynaktan çekmeyi tetikler.

Yukarıdaki 4. adımda, kaynak sunucudan gelen farklı no-cache yönergelerinin kaynaktan çekme davranışı üzerinde oldukça farklı etkileri vardır. Gerçek yönergeye göre kaynak sunucunun yükünü değerlendirin:


Kaynak yanıt üstbilgisi


CDN davranışı


Kaynak sunucu üzerindeki etki


Cache-Control: no-store


Önbelleğe alma tamamen yasaktır. Her istek, tam kaynağı kaynak sunucudan çeker.


Kaynak sunucu tüm trafik yükünü taşır.


Cache-Control: no-cache veya max-age=0


POP'ların önbellek kopyalarını saklamasına izin verilir ancak her kullanımdan önce kaynak sunucuyla yeniden doğrulama yapmaları gerekir. Doğrulama başarılı olduğunda kaynak sunucu 304 (yanıt gövdesi olmadan) döndürür ve ek yük tam bir kaynaktan çekmeden çok daha azdır.


Kaynaktan çekme sayısı azalmaz ancak her çekme yalnızca küçük bir koşullu istektir, bu nedenle bant genişliği basıncı yönetilebilir düzeydedir.


Pragma: no-cache


HTTP/1.0 uyumluluk yönergesi. Etkisi no-cache ile benzerdir.


Yukarıdakiyle aynı.

Önbellek sona erme süresi 0 olarak ayarlandı ancak eriştiğim içerik hala en güncel değil?

Sona erme süresini 0 olarak ayarlamanın amacı, her isteğin kaynak sunucudan en güncel içeriği çekmesini sağlamaktır. Daha eski içerik döndürülüyorsa şu şekilde sorun giderin:

  1. Yerel tarayıcı önbelleğini hariç tutun: Tarayıcı önbelleğini temizleyin veya tekrar test etmek için gizli tarama modunu kullanın ve daha eski içeriği tarayıcının değil POP'un döndürdüğünü onaylayın.

  2. Yapılandırma değişikliğinden önce var olan önbelleği temizleyin: Yapılandırmayı değiştirmeden önce önbelleğe alınan kaynaklar otomatik olarak temizlenmez. Yenileme ve ön getirme işlevini kullanarak bir URL yenileme görevi gönderin.

  3. Kaynak sunucunun kendi önbelleğinin olup olmadığını kontrol edin: Kaynak sunucu (örneğin bir Nginx önbelleği veya uygulama katmanı önbelleği) daha eski içeriği döndürebilir, bu nedenle CDN kaynaktan çekme sırasında eski verileri çeker.

  4. Yapılandırmanın dünya çapında etkili olduğunu onaylayın: Kural durumu Success olmalıdır. Yapılandırmanın tüm POP'lara dağıtılması birkaç dakika sürer.

  5. İsteğin beklenen POP'u isabet ettiğini onaylayın: Farklı ISS'lere veya bölgelere sahip kullanıcılar farklı POP'ları isabet edebilir. Sorunu daha fazla belirlemek için birden çok bölgede ayrı ayrı test edin veya CDN gerçek zamanlı günlüklerini ve yanıtta yer alan POP IP'sini kullanın.

Mobil ve PC isteklerini ayırt etmek için özel bir önbellek anahtarı yapılandırdım ancak devreye girmiyor?

  1. Yapılandırmanın eksiksizliğini kontrol edin: Özel bir önbellek anahtarı genellikle istek özelliklerine (örneğin User-Agent) dayalı kural koşulları ayarlamayı ve ardından her kurala farklı önbellek anahtarı değişkenleri eklemeyi gerektirir. Mobil ve PC istemcilerinin istek özelliklerinin doğru şekilde tanımlandığından ve iki kuralın eşleştirme koşullarının birbirinin üzerine binmediğinden emin olun.

  2. Yapılandırmanın etkili olması için bekleyin: Yapılandırmayı gönderdikten sonra dünya çapında senkronize edilmesi için 5 ila 10 dakika bekleyin.

  3. Önceki önbelleği yenileyin: Yapılandırma değişikliğinden önce önceki önbellek anahtarı altında önbelleğe alınan kaynaklar otomatik olarak sona ermez. Bir yenileme görevi gönderin (dizin yenileme kullanmanızı öneririz).

  4. İstemcide doğrulayın: Tarayıcı önbelleğini temizleyin ve yeniden deneyin; yanıt üstbilgilerindeki X-Cache değerinin MISS olup olmadığını kontrol edin.

  5. Gerçek cihazlarla test edin: Yalnızca tarayıcı penceresini yeniden boyutlandırmak yerine farklı cihazların gerçek User-Agent değerlerini kullanarak istek gönderin (tarayıcı tarafından taklit edilen User-Agent gerçek cihazdan farklı olabilir).

Not

Özel önbellek anahtarı özelliği Parametreleri yoksay ile çakışır: her ikisi de yapılandırıldığında parametreleri yoksayma özelliği devreye girmez. Zaten özel bir önbellek anahtarı kullanıyorsanız Parametreleri yoksay özelliğini ayrı olarak etkinleştirmek yerine istek parametresi işleme ilkesini bunun içinde yapılandırın.

Yanıtlar Set-Cookie içerdiği için önbellek isabet oranı 0. Bunu nasıl çözebilirim?

Neden: Kaynak yanıtı Set-Cookie yanıt üstbilgisini içerdiğinde CDN varsayılan olarak yanıtı önbelleğe almaz ve bu durum önbellek isabet oranının 0 olmasına neden olur.

Önemli

Set-Cookie öğesini kaldırmak yüksek riskli bir işlemdir. Bu yanıt üstbilgisi kullanıcı oturumlarını sürdürme, oturum kimlik doğrulaması ve davranış izleme gibi kritik iş mantığını taşır. Bunu genel olarak kaldırmak oturum açma hatalarına, kayıp alışveriş sepetlerine ve kimlik doğrulama hatalarına neden olabilir. Devam etmeden önce etki kapsamını değerlendirin.

Önerilen çözümler (öncelik sırasına göre):

  • Kaynak tarafında düzeltin (önerilir): Kaynak sunucunun resimler, CSS, JavaScript ve yazı tipleri gibi statik kaynaklar için Set-Cookie döndürmeyi durdurmasını sağlayın. Bu temel çözümdür. Dinamik uç noktaların oturum yönetimini etkilemez ve önbellek isabet oranını artırır.

  • CDN tarafında yola göre kaldırın: Kaynak sunucu ayarlanamıyorsa dinamik uç noktaları etkilememek için bu yanıt üstbilgisini yalnızca /static/, *.css ve *.js gibi statik kaynak yolları için CDN tarafında kaldırın.

CDN tarafında yola göre üstbilgiyi kaldırma adımları:

  1. CDN konsolunda oturum açın. Domain Names sayfasında hedef alan adını bulun ve Manage seçeneğine tıklayın.

  2. Alan adı ayrıntıları sayfasının sol gezinme bölmesinde Origin Settings seçeneğine tıklayın ve Gelen yanıt üstbilgilerini değiştir sekmesine gidin.

  3. Add seçeneğine tıklayın, kural koşulunu statik kaynak yollarıyla sınırlayın, yanıt üstbilgisi işlemi için Delete seçeneğini belirleyin ve yanıt üstbilgisi adı olarak Set-Cookie girin.

  4. Yapılandırma tamamlandıktan sonra yeni kuralın etkili olması için Yenileme ve ön getirme işlevini kullanarak önbelleğe alınmış önceki yanıtları temizleyin.

Yapılandırmadan sonra önbellek isabet oranı hala iyileşmiyorsa şunları kontrol edin: önbellek kurallarında Kaynak sunucudan gelen no-cache üstbilgilerini yoksay özelliğinin etkin olup olmadığı ve aynı kaynağın farklı sorgu parametreleri nedeniyle birden çok önbellek nesnesine ayrılmasını önlemek için Parametreleri yoksay özelliğinin etkin olup olmadığı. CDN'nin varsayılan önbellek kuralları için CDN önbellek sona ermesini yapılandır konusuna bakın.

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?

Düşük önbellek isabet oranı, çoğu isteğin kaynaktan çekmeyi tetiklediği anlamına gelir. Kararsız bir genel ağ yolu hızlandırma etkisini bozabilir ve kaynak sunucuda yük baskısı oluşturabilir. Şu şekilde sorun giderin:

  1. Kaynak sunucunun no-cache yönergeleri döndürüp döndürmediğini kontrol edin: Bu, düşük isabet oranının ve doymuş kaynak bant genişliğinin en yaygın nedenidir. Kaynak sunucu Cache-Control: no-cache, no-store, max-age=0 veya Pragma: no-cache döndürürse CDN kaynak yönergesini izler ve kaynağı önbelleğe almaz, bu nedenle her istek kaynaktan çekmeyi tetikler. Konsol kurallarına dayalı önbelleğe almayı zorlamak için önbellek sona erme yapılandırmasında Kaynak sunucudan gelen no-cache üstbilgilerini yoksay özelliğini etkinleştirebilir veya kaynak sunucunun yapılandırmasını ayarlayabilirsiniz.

  2. Önbellek kurallarının yanlış yapılandırılıp yapılandırılmadığını kontrol edin: Kök dizin (/) için önbellek sona erme süresinin en yüksek ağırlıkla 0 saniye olarak ayarlanmadığını onaylayın. Aksi takdirde tüm istekler kaynaktan çekmeyi tetikler.

  3. URL'lerin değişken parametreler içerip içermediğini kontrol edin: URL'deki soru işaretinden sonraki parametrelerin değiştirilmesi aynı içeriğin farklı kaynaklar olarak kabul edilmesine neden olur. Parametreleri yoksay özelliğini etkinleştirmek bu tür istekleri tek bir önbellek nesnesinde birleştirir. Daha fazla bilgi için sonraki maddeye bakın.

  4. Statik ve dinamik kaynakları ayrı ayrı yapılandırın: Resimler, CSS, JavaScript ve yazı tipleri gibi statik kaynaklar için uzun bir önbellek süresi (örneğin 30 gün) ayarlayın ve PHP, JSP ve API uç noktaları gibi dinamik içerikler için sona erme süresini 0 saniye olarak ayarlayın.

  5. Büyük dosyalar için aralıklı kaynak çekimini etkinleştirin: Videolar ve kurulum paketleri gibi büyük dosyalar için aralıklı kaynak çekiminin etkin olduğundan emin olun, böylece POP her istek için kaynak sunucudan tüm dosyayı çekmez. Bu özelliği etkinleştirmeden önce kaynak sunucunun aralık isteklerini desteklediğinden (yani 206 Partial Content döndürebildiğinden) emin olun. Kaynak sunucu aralık isteklerini desteklemiyorken bu özelliği etkinleştirmek istek hatalarına veya anormal içeriğe neden olabilir.

  6. İş QPS değerinin çok düşük olup olmadığını kontrol edin: POP disk alanı sınırlıdır ve nadiren erişilen kaynaklar sık kullanılan kaynaklar tarafından tahliye edilir ve bu durum kaynaktan çekmeyi tetikler. Yalnızca bir düzine QPS değerine sahip alan adları için kaynakların POP'lerde kalıcı kalmasını sağlamak amacıyla Yenileme ve ön getirme işlevini kullanarak ön getirme görevleri göndermenizi öneririz.

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?

Belirti: Bir sayfanın genel isabet oranı düşüktür. Yanıt üstbilgileri ana istek için X-Cache değerinin MISS olduğunu ancak sayfadaki tek tek dosyalar için HIT olduğunu gösterir.

Neden: URL, her istekte değişen zaman damgası gibi parametreler içerir. Parametreleri yoksayma özelliği devre dışı bırakıldığında CDN farklı parametrelere sahip her URL'yi bağımsız bir kaynak olarak kabul eder ve önbelleği yeniden kullanamaz. Örneğin, http://example.com/movie/res/ArrowScene.ccbi?_t=1699999999 URL'sindeki ?_t= sonrasındaki değer her istek için farklıdır.

Çözüm: CDN konsolunda Parametreleri yoksay özelliğini etkinleştirin. Bu özelliği etkinleştirdiğinizde parametreler önbellek nesnesi hesaplamasından hariç tutulur ve farklı parametrelere sahip aynı kaynak istekleri aynı önbelleği isabet eder. İşiniz bazı parametrelere bağlıysa yalnızca ilgisiz olanları yoksaymak için Belirtilen parametreleri sakla seçeneğini belirleyin.

Önbellek isabet oranında ani bir düşüşün olası nedenleri nelerdir?

İsabet oranında kısa vadeli dalgalanmaların veya sürekli düşüşün yaygın nedenleri:

  • Bir önbellek yenileme gerçekleştirildi: Manuel veya otomatik bir yenileme POP'lerdeki önbelleği temizler, bu nedenle kısa bir süre içinde isabet oranında düşüş beklenir. Kaynaklar tekrar önbelleğe alındıkça isabet oranı genellikle birkaç saat içinde otomatik olarak toparlanır.

  • Bant genişliği artışı yaşandı: Kısa bir süre içinde keskin bir trafik artışı birçok ilk kez yapılan isteği beraberinde getirir, bu da kaynaktan çekmeyi artırır ve isabet oranını düşürür.

  • Büyük miktarda yeni içeriğe erişiliyor: POP'lar ilk kez erişilen kaynakları sık sık istediğinde kaynaktan çekme kaçınılmazdır ve isabet oranı düşer.

  • Önbellek kuralları ayarlandı: Önbellek ilkesini değiştirmek, özellikle sona erme süresini kısaltmak isabet oranını etkiler.

  • URL'ler değişken parametreler içeriyor: Değişen parametreler aynı içeriği birden çok önbellek nesnesine ayırır.

  • Önbellek sona erme süresi uygun şekilde yapılandırılmamış: Yapılandırma kaynakları güncelleme sıklığına göre ayırmazsa önbellek çok erken sona erer.

Yanıt üstbilgisi ve CORS istisnaları

Access-Control-Allow-Origin yapılandırdım ancak istekler hala CORS hataları bildiriyor?

CDN'de CORS yanıt üstbilgilerini yapılandırdıysanız ancak istemciler hala CORS hataları bildiriyorsa ve yanıt üstbilgileri yapılandırılan alanı içermiyorsa olası nedenler ve çözümler aşağıdadır:

  • Yapılandırma etkili olmadı: Yapılandırmanın kaydedildiğini ve kural durumunun Success olduğunu onaylayın.

  • Yapılandırma tam olarak dağıtılmadı: Giden yanıt üstbilgisi yapılandırmasındaki değişiklikler genellikle 5 dakika içinde etkili olur. Bekleyin ve tekrar deneyin. Bu yapılandırma yalnızca istemcilerin aldığı yanıtları etkiler, POP'ların önbellek davranışını etkilemez, bu nedenle yenileme veya ön getirme gerekmez (ön getirme, zaten önbelleğe alınmış kaynakların yanıt üstbilgilerini değiştirmez).

  • Kaynak sunucunun yanıt üstbilgileri CDN yapılandırmasıyla çakışıyor: Kaynak sunucu da CORS yanıt üstbilgileri döndürüyorsa üstbilgiler birbirinin üzerine binebilir. Kaynak sunucu ve CDN'de tutarlı CORS yapılandırmaları kullanmanızı veya Giden yanıt üstbilgilerini değiştir bölümünde Allow Duplicate seçeneğini No olarak ayarlayarak CDN'de yapılandırılan değerin kaynak sunucu tarafından döndürülen değerin üzerine yazmasını sağlamanızı öneririz.

  • Tarayıcı önceki yanıtı önbelleğe aldı: Tarayıcı önbelleğini temizleyin veya test etmek için gizli tarama modunu kullanın.

  • Joker karakterli alan adı yapılandırması desteklenmiyor: CORS doğrulamasını etkinleştirdikten sonra yalnızca tek bir joker karakterli alan adı veya virgülle ayrılmış birden çok tam alan adı yapılandırabilirsiniz. Birden çok joker karakterli alan adını virgülle ayırmak desteklenmez.

  • Access-Control-Allow-Origin değeri istek Origin ile eşleşmiyor: Tarayıcı "The 'Access-Control-Allow-Origin' header has a value that is not equal to the supplied origin" hatası bildiriyorsa döndürülen izin verilen origin gerçek istek origin ile eşleşmiyor demektir. Bunu şu şekillerde çözebilirsiniz:

    • Giden yanıt üstbilgilerini değiştir bölümünde Access-Control-Allow-Origin öğesini yeniden yapılandırın ve Allow Duplicate seçeneğini No olarak ayarlayarak yeni değerin kaynak sunucu tarafından döndürülen önceki değerin üzerine yazmasını sağlayın.

    • İşiniz izin veriyorsa bu yanıt üstbilgisini istekteki Origin değerini dinamik olarak döndürecek şekilde yapılandırın, böylece izin verilen origin her zaman istek origin ile eşleşir. Yapılandırma tamamlandıktan sonra etkili olması için yaklaşık 5 dakika bekleyin. Önbellek yenilemesi gerekmez.

Çapraz kaynak paylaşımının nasıl yapılandırılacağı hakkında bilgi için Çapraz kaynak paylaşımını yapılandır konusuna bakın.

Özel bir yanıt üstbilgisi etkili olmuyor?

  • İsteklerin CDN POP'larından geçtiğini onaylayın: DNS çözümlemesinin yalnızca CDN tarafından sağlanan CNAME kaydını tuttuğunu ve OSS gibi kaynaklar için doğrudan çözümleme kayıtlarının kaldırıldığını kontrol edin. Trafik doğrudan kaynak sunucuya gidiyorsa CDN'de yapılandırılan yanıt üstbilgileri etkili olmaz.

  • Giden yerine gelen bir yanıt üstbilgisi yapılandırdığınızı onaylayın: Gelen yanıt üstbilgileri yalnızca kaynak sunucu ile CDN POP'ları arasındaki iletişim için geçerlidir ve son kullanıcılar bunların farkında değildir. Son kullanıcıların aldığı yanıtları etkilemek için Giden yanıt üstbilgilerini değiştir yapılandırmasını kullanın.

  • Kaynak sunucunun yanıt üstbilgisini döndürüp döndürmediğini onaylayın: CDN varsayılan olarak kaynak yanıt üstbilgilerini geçirir. Kaynak sunucu üstbilgiyi döndürmezse CDN de döndürmez. Yanıt üstbilgisinin kaynak sunucunun döndürüp döndürmediğine bakılmaksızın dahil edilmesini zorlamak için Giden yanıt üstbilgilerini değiştir bölümünde Add işlemini seçin.

  • Content-Type etkili olmuyorsa kaynak sunucudaki meta verileri kontrol edin: Kaynak sunucu (örneğin OSS) bir dosya yüklenirken doğru Content-Type belirtmezse kaynaktan çekme sırasında elde edilen meta veriler beklentinizle eşleşmez. Dosya yüklenirken kullanılan Content-Type ayarını kontrol edin.

  • Yapılandırmanın etkili olması için beklediğinizi onaylayın: Giden yanıt üstbilgisi yapılandırmasındaki değişiklikler genellikle 5 dakika içinde etkili olur ve yalnızca istemcilerin aldığı yanıtları etkiler, POP'ların önbellek davranışını etkilemez, bu nedenle yenileme veya ön getirme gerekmez (ön getirme, zaten önbelleğe alınmış kaynakların yanıt üstbilgilerini değiştirmez).

Giden yanıt üstbilgilerinin nasıl yapılandırılacağı ve parametre açıklamaları hakkında bilgi için Giden yanıt üstbilgilerini değiştir konusuna bakın.

CDN hızlandırmasından sonra bir sayfa bozuk görünüyor. Bunu nasıl ele alabilirim?

Neden: Kaynak sunucu tarafından döndürülen Content-Type yanıt üstbilgisi karakter kodlamasını doğru şekilde belirtmiyor ve istemci içeriği yanlış kodlamayla ayrıştırıyor, bu da sayfanın bozuk görünmesine neden oluyor.

Çözüm 1 (önerilir, kaynakta düzeltme): HTML döndürülürken Content-Type öğesinin doğru karakter kodlama bildirimini içermesini sağlamak için kaynak sunucu yapılandırmasını değiştirin.

Çözüm 2 (CDN tarafında yeniden yazma):

  1. CDN konsolunda oturum açın. Domain Names sayfasında hedef alan adını bulun ve Manage seçeneğine tıklayın.

  2. Gelen yanıt üstbilgilerini değiştir bölümünde eşleşen yolun Content-Type değerini text/html; charset=utf-8 olarak yeniden yazmak için bir kural ekleyin.

  3. Yapılandırma tamamlandıktan sonra POP'ların doğru türle tekrar önbelleğe alması için o yol altındaki önbelleğe alınmış kaynakları yenilemek amacıyla Yenileme ve ön getirme işlevini kullanın.

Not

Gelen bir yanıt üstbilgisiyle Content-Type öğesini yeniden yazmak kaynaktan çekme aşamasında türü düzeltir ve POP kaynağı doğru türle tekrar önbelleğe alır. Giden bir yanıt üstbilgisi kullanırsanız POP önbelleğinde depolanan tür hala yanlış olur ve yalnızca teslimat sırasında üzerine yazılır ki bu daha az kapsamlıdır. Ayrıca gelen yanıt üstbilgileri joker karakterli alan adı yapılandırmasını desteklemez.

Video indirme veya önizlemeyi kontrol etmek için bir yanıt üstbilgisi yapılandırdım ancak devreye girmiyor. Ne yapmalıyım?

Videoların indirme veya önizleme davranışını kontrol etmek için Giden yanıt üstbilgilerini değiştir özelliğini kullanarak Content-Disposition yanıt üstbilgisini yapılandırabilirsiniz: attachment; filename='video.mp4' olarak ayarlanırsa kullanıcı kaynağa eriştiğinde indirme tetiklenir; inline olarak ayarlanırsa kaynak doğrudan tarayıcıda önizlenir.

Yapılandırma etkili olmuyorsa şu öğeleri kontrol edin:

  1. Kural motorunun eşleştirme koşulu: Kuralın eşleştirme koşulunun yalnızca sorgu dizesini eşleştirmek yerine URI yolunu (örneğin /video-origin/20260414 içerir) hedeflediğinden emin olun. Kural motoru yapılandırmanın etkili olup olmadığını kullanıcı isteğindeki yol bilgilerini tanımlayarak belirler.

  2. POP önceki yanıt üstbilgisini önbelleğe aldı: Content-Disposition doğrudan tarayıcı davranışını etkiler. Yapılandırma kaydedildikten 5 dakika sonra etkili olmuyorsa önce yerel tarayıcı önbelleğini hariç tutun (gizli tarama modunda yeniden deneyin) ve kural durumunun Success olduğunu onaylayın.

Bir JavaScript dosyası yanlışlıkla text/html olarak işleniyor. Bunu nasıl çözebilirim?

Neden: Kaynak sunucu JavaScript dosyasını ilk döndürdüğünde Content-Type yanıt üstbilgisi yanlışlıkla text/html olarak ayarlanır. CDN yanlış türü önbelleğe aldıktan sonra tarayıcı JavaScript dosyasını text/html olarak ayrıştırır ve bu da bozuk görüntülemeye veya yürütme hatalarına neden olur. İkinci ziyarette kaynak sunucu Content-Type'ı düzelttiği veya CDN doğru türü kaynak sunucudan tekrar çektiği için sayfa normale döner.

Çözüm:

  1. CDN konsolundaki Gelen yanıt üstbilgilerini değiştir bölümünde JavaScript dosya yolunu (örneğin *.js) eşleştirmek ve Content-Type öğesini zorla application/javascript ile değiştirmek için bir kural ekleyin.

  2. Yapılandırma tamamlandıktan sonra yeni kuralın hemen etkili olması için JavaScript dosyasının önbelleğini yenilemek amacıyla Yenileme ve ön getirme işlevini kullanın.

Not

Bu sorun sayfa bozulmasıyla aynı kök nedene sahiptir (kaynak sunucu yanlış Content-Type döndürdü). Her iki durumda da önce kaynak sunucu yapılandırmasını düzeltmenizi ve yalnızca kaynak sunucu ayarlanamıyorsa gelen bir yanıt üstbilgisiyle üstbilgiyi yeniden yazmanızı öneririz.

Video ve büyük dosya istisnaları

Video oynatma sırasında ERR_CONTENT_LENGTH_MISMATCH hatası oluşuyor?

Neden: POP'ta önbelleğe alınan dosyanın uzunluğu kaynak sunucudaki gerçek içerikle eşleşmiyor veya kaynak sunucu anormal bir Content-Length yanıt üstbilgisi döndürdü. Bu durum en sık olarak kaynak sunucunun bir video dosyasını güncellemesi ancak CDN'nin hala önceden önbelleğe alınmış sürümü döndürmesi durumunda meydana gelir.

Çözüm:

  • Yenileme ve ön getirme sayfasında POP'lardaki önceki önbelleği temizlemek için video URL'sine yönelik bir yenileme görevi gönderin.

  • Kaynak sunucu OSS ise kaynak sunucudaki bir dosya güncellendiğinde otomatik olarak bir CDN önbellek yenilemesinin tetiklenmesi için OSS konsolunda Otomatik CDN önbellek yenileme özelliğini etkinleştirebilirsiniz.

  • Kaynak sunucunun kararlılığını kontrol edin ve aralıklı olarak anormal Content-Length değeri döndürmediğinden emin olun. Karşılaştırmak ve doğrulamak için kaynak sunucuya doğrudan curl -I komutunu birden çok kez çalıştırabilirsiniz.

Günlüklerde birçok 206 durum kodu veya birden çok kaynaktan çekme görmek normal midir?

Evet. Video oynatıcılar ve indirme araçları genellikle kaynakları segmentler halinde yüklemek için aralık isteklerini kullanır. Her istek yalnızca içeriğin bir bölümünü alır ve sunucu 206 Partial Content döndürür. Bir istek CDN önbelleğini isabet etse bile döndürülen durum kodu 206'dır ve bu bir hata değildir.

Faturalama notu: İstemci CDN'ye bir istek gönderip veri aldığı sürece istek önbelleği isabet etse bile trafik CDN giden trafiği olarak sayılır.

Optimizasyon önerileri: POP'ların kaynak sunucudan segmentleri ihtiyaca göre çekip önbelleğe almasını ve böylece sonraki segment istekleri için isabet oranını artırmasını sağlamak için aralıklı kaynak çekiminin etkin olduğundan emin olun. Ayrıca yerel tarayıcı önbelleğini kullanmak ve yinelenen istekleri azaltmak için kaynak sunucuda uygun bir Cache-Control üstbilgisi (örneğin max-age=86400) yapılandırın.

İçerik ve erişim istisnaları

Statik kaynaklar önbelleği isabet ediyor ancak ana sayfa hala yavaş yükleniyor?

Neden: Resimler, CSS dosyaları ve JavaScript dosyaları gibi statik kaynaklar önbelleği isabet ediyor ve normal şekilde hızlandırılıyor ancak ana sayfa (kök yol /) genellikle önbellek kuralına sahip değildir. Her istek ana sayfayı kaynak sunucudan çeker, bu nedenle yükleme hızı tamamen kaynak sunucunun işleme süresine bağlıdır.

Çözüm: Ana sayfa içeriğinin de POP'larda önbelleğe alınması için hızlandırılmış alan adının kök dizini için bir önbellek sona erme kuralı ekleyin:

Önemli

Aşağıdaki çözüm yalnızca resmi web siteleri ve bloglar gibi tamamen statik veya sözde statik ana sayfalar için geçerlidir. Ana sayfa oturum açma durumları veya kişiselleştirilmiş öneriler gibi kullanıcıya özel dinamik içerikler içeriyorsa kök dizini önbelleğe almak kullanıcıların diğer kullanıcıların içeriğini görmesine neden olabilir ve bu da bilgi sızıntısına yol açar. Dinamik ana sayfalar için ESI (Edge Side Includes) veya statik-dinamik ayrım mimarisi kullanın.

  1. Cache Expiration sekmesinde bir kural ekleyin, türü Directory olarak ayarlayın ve adresi / olarak ayarlayın.

  2. Sona erme süresini ana sayfa içeriğinin güncelleme sıklığına göre ayarlayın, örneğin 30 saniyeden birkaç dakikaya kadar.

  3. Statik kaynaklar için önbellek kurallarının üzerine yazmaktan kaçınmak amacıyla kök dizin kuralının ağırlığını belirli yolların (örneğin /static/) kurallarının ağırlığından daha düşük olacak şekilde ayarlayın.

Yapılandırma etkili olduktan sonra POP'lar ana sayfa içeriğini her istek için kaynak sunucudan çekmek yerine doğrudan döndürür. Ayrıntılı yapılandırma talimatları için CDN önbellek sona ermesini yapılandır konusuna bakın.

CDN üzerinden erişim kaynak sunucuya doğrudan erişimden farklı bir sonuç döndürüyor?

Neden: Bir POP önbelleği ıskaladığında istemci isteğini iletir ve Via ve X-Forwarded-For gibi belirli parametreleri istek üstbilgilerine ekler. Bazı kaynak sunucular bu parametrelere göre farklı yanıtlar döndürür. Örneğin bir kaynak sunucu proxy isteklerini tanımlamak için isteğin Via üstbilgisini içerip içermediğini kontrol edebilir ve bunları farklı şekilde işleyebilir.

Sorun giderme adımları:

  1. Farklılığa neden olan üstbilgiyi bulun: Önce kaynak sunucuya doğrudan erişin ve yanıtı kaydedin. Ardından CDN'nin eklediği üstbilgilerle kaynak sunucuya erişmek için curl kullanın, bunları tek tek değiştirerek ve test ederek tutarsız sonucu yeniden üretene kadar ilerleyin.

  2. Kaynak sunucunun yapılandırmasını ayarlayın: Kaynak web sunucusunun üstbilgiyi nasıl işlediğini kontrol edin ve iş gereksinimlerinize göre mantığı değiştirin.

  3. Veya üstbilgiyi CDN tarafında silin: Üstbilgi işiniz için gerekli değilse bunu CDN konsolunda silebilirsiniz.

CDN üzerinden indirilen dosya kaynak sunucudakiyle tutarsız (aynı adla güncelleme). Bunu nasıl çözebilirim?

Neden: Kaynak sunucu dosyada aynı adla güncelleme yaptı (dosya içeriği değiştirildi ancak dosya adı değiştirilmedi). Önbellek sona ermeden önce CDN POP'u hala önceki önbelleği doğrudan döndürür, bu nedenle indirilen dosya kaynak sunucudakiyle tutarsız olur.

Çözüm:

  1. Çözüm 1: Önbelleği manuel olarak yenileyin. Kaynak sunucu aynı adla güncelleme yaptıktan sonra Yenileme ve ön getirme sayfasında bir URL yenileme (tek bir kaynak için uygundur ve hızlı etkili olur) veya dizin yenileme (tüm bir dizin için uygundur ve geniş bir kapsamı kapsar ancak kaynak sunucudaki kaynaktan çekme baskısını geçici olarak artırır) gönderin.

  2. Çözüm 2: 304'ü atlamak için zorla yenileme yapın. Kaynak sunucudaki dosya içeriği değişti ancak Last-Modified zaman damgası güncellenmediyse CDN POP'u koşullu istek (If-Modified-Since) doğrulamasından sonra 304 Not Modified alır, dosyanın değişmediğini belirler ve önbelleği güncellemez. Bu durumda normal bir URL yenilemesi etkili olmayabilir. Kaynak sunucudan tam dosyayı zorla çekmek için RefreshObjectCaches API'sini çağırmanız ve Force parametresini true olarak ayarlamanız gerekir.

  3. Çözüm 3: Sürümlü adlandırma kullanın (uzun vadeli çözüm olarak önerilir). Kaynak sunucunun aynı adla güncelleme yapmaktan kaçınmasını öneririz. Bunun yerine dosya adına bir sürüm numarası veya karma değeri ekleyin (örneğin style.v2.css veya app.abc123.js) veya bir URL parametresinde sürüm tanımlayıcısı taşıyın (örneğin ?v=20260828).

  4. Çözüm 4: OSS kaynağı için otomatik yenilemeyi etkinleştirin. Kaynak sunucu OSS ise OSS konsolunda Otomatik CDN önbellek yenileme özelliğini etkinleştirebilirsiniz. OSS kaynağında bir nesne aynı adla güncellendiğinde ilgili CDN URL'si otomatik olarak yenilenir.

Not

URL sürüm parametrelerini kullanırken CDN'de aynı anda Parametreleri yoksay özelliğini etkinleştirmeyin. Aksi takdirde sürüm parametresi yoksayılır ve bu çözüm etkisiz hale gelir. İşiniz diğer parametreleri yoksaymayı gerektiriyorsa bunun yerine Belirtilen parametreleri sakla seçeneğini kullanın ve sürüm parametresini saklayın.

Bir kaynağa eriştiğimde neden özel bir 404 sayfası görünüyor?

Bir web sunucusu HTTP 404 durum kodunu döndürdüğünde otomatik olarak 404 sayfasına yönlendirir; bu, istenen kaynağın kaynak sunucuda mevcut olmadığını gösterir. Yaygın nedenler şunlardır: URL oluşturma kuralının değişmesi, dosyanın yeniden adlandırılması veya taşınması, bağlantıda yazım hatası olması, web sitesinin istenen bağlantı noktasında erişilememesi veya bir web hizmeti uzantısı kilitleme ilkesi ya da MIME eşleme ilkesinin isteği engellemesi.

Eriştiğiniz sayfa birden çok kaynak içeriyorsa ve yalnızca bazılarına erişilemiyorsa sayfa genel olarak 404 sayfasına yönlendirilmez. Özel hata sayfalarının nasıl yapılandırılacağı hakkında bilgi için Özel hata sayfalarını yapılandır konusuna bakın.

Ö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?

403 durum kodu için özel bir hata sayfası yapılandırdığınızda hata sayfası ayarlarında doğrudan yönlendirme bağlantısı yapılandırmak alan adı yönlendirmesine veya yönlendirme döngüsüne neden olabilir. Bunun yerine aşağıdaki yöntemi kullanın:

  1. Özel hata sayfasında yönlendirme bağlantısı ayarlamak yerine Erişim URL'si Yeniden Yazma özelliğini kullanarak yönlendirmeyi yapılandırın.

  2. Yeniden yazılacak yolu / olarak ayarlayın ve hedef yolu doğru statik 403 sayfasına, örneğin /error/403.html dosyasına yönlendirin.

Önemli

403 hata sayfasının kendisinin erişilebilir olduğundan ve başka bir 403 yönlendirmesini tetiklemediğinden emin olun. Aksi takdirde yönlendirme döngüsü oluşur ve sayfaya hiç erişilemez.

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.