Share via


Azure Front Door ile Önbelleğe Alma

Önemli

Azure Front Door (klasik) 31 Mart 2027'de kullanımdan kaldırılacaktır. Hizmet kesintisini önlemek için Azure Front Door (klasik) profillerinizi Mart 2027'ye kadar Azure Front Door Standard veya Premium katmanına geçirmeniz önemlidir. Daha fazla bilgi için bkz . Azure Front Door (klasik) kullanımdan kaldırma.

Azure Front Door, dinamik site hızlandırma ve yük dengeleme özelliklerine sahip modern bir içerik teslim ağıdır (CDN). Önbelleğe alma rotanızda yapılandırıldığında, her isteği alan uç site önbelleğinde geçerli bir yanıt olup olmadığını denetler. Önbelleğe Alma, kaynak sunucunuza gönderilen trafik miktarını azaltmaya yardımcı olur. Önbelleğe alınmış yanıt yoksa istek kaynağın adresine iletilir.

Her Front Door edge sitesi kendi önbelleğini yönetir ve istekler farklı kenar siteleri tarafından karşılanabilir. Sonuç olarak, önbelleğe alınmış yanıtlar verseniz bile bazı trafiğin kaynağınıza ulaştığını görebilirsiniz.

Önbelleğe Alma gecikme süresini önemli ölçüde azaltabilir ve kaynak sunuculardaki yükü azaltabilir. Ancak, her tür trafik önbelleğe alma avantajından yararlanamayabilir. Görüntüler, CSS ve JavaScript dosyaları gibi statik varlıklar önbelleğe almak için idealdir. Kimliği doğrulanmış API uç noktaları gibi dinamik varlıklar kişisel bilgilerin sızmasını önlemek için önbelleğe alınmamalıdır. Statik ve dinamik varlıklar için ayrı yolların olması ve ikincisinde önbelleğe alma özelliğinin devre dışı bırakılması önerilir.

Uyarı

Önbelleğe almayı etkinleştirmeden önce genel belgeleri ayrıntılı bir şekilde gözden geçirin ve önbelleğe almayı etkinleştirmeden önce tüm olası senaryoları test edin. Daha önce belirtildiği gibi, yanlış yapılandırmayla, birden çok kullanıcı tarafından paylaşılabilen ve gizlilik olaylarıyla sonuçlanan kullanıcıya özgü verileri yanlışlıkla önbelleğe alabilirsiniz.

İstek yöntemleri

Yalnızca istek yöntemini kullanan GET istekler önbelleğe alınır. Diğer tüm istek yöntemleri her zaman ağ üzerinden proksid edilir.

Büyük dosyaların teslimi

Azure Front Door, dosya boyutu üzerinde büyük bir sınır olmadan büyük dosyalar sunar. Önbelleğe alma etkinse, Front Door nesne öbekleme adlı bir teknik kullanır. Büyük bir dosya istendiğinde, Front Door dosyanın daha küçük parçalarını kaynaktan alır. Front Door tam dosya isteği veya bayt aralığı dosya isteği aldıktan sonra, Front Door ortamı 8 MB'lık öbekler halinde kaynaktan dosyayı ister.

Öbek Azure Front Door ortamına geldikten sonra önbelleğe alınır ve kullanıcıya hemen sunulur. Front Door daha sonra bir sonraki öbekleri paralel olarak önyükler. Bu ön koşul, içeriğin kullanıcının bir öbek önünde kalmasını sağlar ve bu da gecikme süresini azaltır. Bu işlem, dosyanın tamamı indirilene (istenirse) veya istemci bağlantıyı kapatana kadar devam eder. Bayt aralığı isteği hakkında daha fazla bilgi için RFC 7233'e bakın.

Front Door, alınan tüm öbekleri önbelleğe alır, böylece dosyanın tamamının Front Door önbelleğinde önbelleğe alınması gerekmez. Dosya veya bayt aralıkları için sonraki istekler önbellekten sunulur. Öbeklerin tümü önbelleğe alınmamışsa, kaynaktan öbek istemek için önceden oluşturma kullanılır.

Bu iyileştirme, kaynağın bayt aralığı isteklerini destekleyebilmesine bağlıdır. Kaynak bayt aralığı isteklerini desteklemiyorsa veya aralık isteklerini doğru şekilde işlemiyorsa, bu iyileştirme etkili olmaz.

Kaynağınız bir isteği üst bilgiyle Range yanıtladığında, aşağıdaki yollardan biriyle yanıt vermelidir:

  • Aralıklı bir yanıt döndürür. Yanıt, HTTP durum kodu 206 kullanmalıdır. Ayrıca yanıt üst bilgisinin Content-Range mevcut olması ve kaynağınızın döndürdüğü içeriğin gerçek uzunluğuyla eşleşmesi gerekir. Kaynağınız geçerli değerlerle doğru yanıt üst bilgilerini göndermezse, Azure Front Door yanıtı önbelleğe almaz ve tutarsız davranışlar görebilirsiniz.

    İpucu

    Kaynağınız yanıtı sıkıştırıyorsa, üst bilgi değerinin Content-Range sıkıştırılmış yanıtın gerçek uzunluğuyla eşleştiğinden emin olun.

  • Aralıksız bir yanıt döndürür. Kaynağınız aralık isteklerini işleyemiyorsa, üst bilgiyi yoksayabilir Range ve düzenlenmemiş bir yanıt döndürebilir. Kaynağın 206 dışında bir yanıt durum kodu döndürdüğünden emin olun. Örneğin, kaynak 200 Tamam yanıtı döndürebilir.

Kaynakta Azure Front Door POP'a veri göndermek için Öbekli Aktarım Kodlaması (CTE) kullanılıyorsa, 8 MB'tan büyük yanıt boyutları desteklenmez.

Dosya sıkıştırma

Azure Front Door'da dosyaları sıkıştırarak performansı iyileştirmeye bakın.

Azure Front Door (klasik), uçtaki içeriği dinamik olarak sıkıştırarak istemcilerinize daha küçük ve daha hızlı yanıt süresi sağlar. Bir dosyanın sıkıştırmaya uygun olabilmesi için önbelleğe almanın etkinleştirilmesi ve sıkıştırmaya uygun olması için dosyanın MIME türünde olması gerekir. Şu anda Front Door (klasik) bu listenin değiştirilmesine izin vermiyor. Geçerli liste:

  • "application/eot"
  • "uygulama/yazı tipi"
  • "application/font-sfnt"
  • "application/javascript"
  • "application/json"
  • "application/opentype"
  • "application/otf"
  • "application/pkcs7-mime"
  • "application/truetype"
  • "application/ttf",
  • "application/vnd.ms-fontobject"
  • "application/xhtml+xml"
  • "application/xml"
  • "application/xml+rss"
  • "application/x-font-opentype"
  • "application/x-font-truetype"
  • "application/x-font-ttf"
  • "application/x-httpd-cgi"
  • "application/x-mpegurl"
  • "application/x-opentype"
  • "application/x-otf"
  • "application/x-perl"
  • "application/x-ttf"
  • "application/x-javascript"
  • "font/eot"
  • "font/ttf"
  • "font/otf"
  • "font/opentype"
  • "image/svg+xml"
  • "text/css"
  • "text/csv"
  • "text/html"
  • "text/javascript"
  • "text/js", "text/plain"
  • "text/richtext"
  • "metin/sekmeyle ayrılmış değerler"
  • "text/xml"
  • "text/x-script"
  • "text/x-component"
  • "text/x-java-source"

Ayrıca, dosyanın boyutu da 1 KB ile 8 MB (dahil) arasında olmalıdır.

Bu profiller aşağıdaki sıkıştırma kodlamalarını destekler:

bir istek gzip ve Brotli sıkıştırmasını destekliyorsa Brotli sıkıştırma önceliklidir.

Bir varlık için istek sıkıştırmayı belirttiğinde ve istek önbellek kaçırması ile sonuçlandığında, Azure Front Door (klasik) varlığı doğrudan POP sunucusunda sıkıştırır. Daha sonra, sıkıştırılmış dosya önbellekten sunulur. Sonuçta elde edilen öğe bir Transfer-Encoding: chunked yanıt üst bilgisi ile döndürülür.

Kaynakta Azure Front Door POP'a veri göndermek için Öbekli Aktarım Kodlaması (CTE) kullanılıyorsa sıkıştırma desteklenmez.

Not

Aralık istekleri farklı boyutlarda sıkıştırılabilir. Azure Front Door, tüm GET HTTP istekleri için içerik uzunluğu değerlerinin aynı olmasını gerektirir. İstemciler, Kaynak öğesinin Accept-Encoding farklı içerik uzunluklarıyla yanıt vermesine yol açan üst bilgiyle bayt aralığı istekleri gönderirse, Azure Front Door 503 hatası döndürür. Kaynakta sıkıştırmayı devre dışı bırakabilir veya bayt aralığı istekleri isteğinden üst bilgiyi kaldırmak Accept-Encoding için bir Kural Altyapısı kuralı oluşturabilirsiniz.

Sorgu dizesi davranışı

Azure Front Door ile, sorgu dizesi içeren bir web isteği için dosyaların nasıl önbelleğe alındığını denetleyebilirsiniz.

Sorgu dizesi içeren bir web isteğinde sorgu dizesi, isteğin soru işaretinden (? sonra oluşan bölümüdür). Sorgu dizesi, alan adı ve değerinin eşittir işaretiyle (= ) ayrıldığı bir veya daha fazla anahtar-değer çifti içerebilir. Her anahtar-değer çifti bir ve işareti (&) ile ayrılır.

Örneğin, URL http://www.contoso.com/content.mov?field1=value1&field2=value2 iki sorgu dizesi içerir:

  • field1, değeriyle value1birlikte.
  • field2, değeriyle value2birlikte.

bir isteğin sorgu dizesinde birden fazla anahtar-değer çifti varsa, sırasının önemi yoktur.

Önbelleğe almayı yapılandırırken, önbelleğin sorgu dizelerini nasıl işleyeceğini belirtirsiniz. Aşağıdaki davranışlar desteklenir:

  • Sorgu Dizesini Yoksay: Bu modda, Azure Front Door istemciden gelen sorgu dizelerini ilk istekte kaynağa geçirir ve varlığı önbelleğe alır. Front Door ortamından sunulan varlık için gelecekteki istekler, önbelleğe alınan varlığın süresi dolana kadar sorgu dizelerini yoksayar.

  • Sorgu Dizesini Kullan: Bu modda, sorgu dizesi de dahil olmak üzere benzersiz bir URL'ye sahip her istek, kendi önbelleğine sahip benzersiz bir varlık olarak kabul edilir. Örneğin, bir isteğin www.example.ashx?q=test1 kaynağından gelen yanıt Front Door ortamında önbelleğe alınır ve aynı sorgu dizesine sahip önbellekler oluşturmak için döndürülür. için www.example.ashx?q=test2 bir istek, kendi yaşam süresi ayarına sahip ayrı bir varlık olarak önbelleğe alınır.

    Sorgu dizesi parametrelerinin sırası önemli değildir. Örneğin, Azure Front Door ortamı URL www.example.ashx?q=test1&r=test2için önbelleğe alınmış bir yanıt içeriyorsa, için bir istek www.example.ashx?r=test2&q=test1 de önbellekten sunulur.

  • Belirtilen Sorgu Dizelerini Yoksay ve Belirtilen Sorgu Dizelerini Ekle: Bu modda, Azure Front Door'un önbellek anahtarı oluşturulduğunda belirtilen parametreleri dahil etmek veya dışlamak üzere yapılandırabilirsiniz.

    Örneğin, varsayılan önbellek anahtarının olduğunu /foo/image/asset.htmlve URL'ye https://contoso.com/foo/image/asset.html?language=EN&userid=100&sessionid=200bir istek yapıldığını varsayalım. Sorgu dizesi parametresini dışlayan userid bir kural altyapısı kuralı varsa, sorgu dizesi önbellek anahtarı olacaktır /foo/image/asset.html?language=EN&sessionid=200.

Front Door yolunda sorgu dizesi davranışını yapılandırın.

Önbellek temizleme

Önbellek temizlemeyi yapılandırmayı öğrenmek için bkz . Azure Front Door'da önbellek temizleme.

Azure Front Door, varlığın yaşam süresi (TTL) sona erene kadar varlıkları önbelleğe alır. İstemci süresi dolan TTL'ye sahip bir varlık istediğinde, Front Door ortamı isteği sunmak için varlığın güncelleştirilmiş yeni bir kopyasını alır ve ardından yenilenen önbelleği depolar.

Kullanıcılarınızın varlıklarınızın her zaman en son kopyasını edindiğinden emin olmak için en iyi yöntem, her güncelleştirme için varlıklarınızı sürüm haline getirmek ve bunları yeni URL'ler olarak yayımlamaktır. Front Door, sonraki istemci istekleri için yeni varlıkları hemen alır. Bazen önbelleğe alınmış içeriği tüm kenar düğümlerinden temizlemek ve tümünü yeni güncelleştirilmiş varlıkları almaya zorlamak isteyebilirsiniz. Bunun nedeni web uygulamanızda yapılan güncelleştirmeler veya yanlış bilgi içeren varlıkları hızla güncelleştirmek olabilir.

Önbellek temizleme düğmesinin ve sayfasının ekran görüntüsü.

Kenar düğümlerinden temizlemek istediğiniz varlıkları seçin. Tüm varlıkları temizlemek için Tümünü temizle'yi seçin. Aksi takdirde, Yol alanına temizlemek istediğiniz her varlığın yolunu girin.

Bu biçimler temizlenmek üzere yol listelerinde desteklenir:

  • Tek yol temizleme: Varlığın tam yolunu (protokol ve etki alanı olmadan) dosya uzantısıyla (örneğin, /pictures/strasbourg.png) belirterek tek tek varlıkları temizleme;
  • Joker karakter temizleme: Yıldız (*) joker karakter olarak kullanılabilir. Yolda /* bulunan bir uç noktanın altındaki tüm klasörleri, alt klasörleri ve dosyaları temizleyin veya /*, örneğin , /pictures/* klasörünü belirterek belirli bir klasör altındaki tüm alt klasörleri ve dosyaları temizleyin.
  • Kök etki alanı temizleme: Uç noktanın kökünü yolda "/" ile temizler.

Not

Joker karakter etki alanlarını temizleme: Bu bölümde açıklandığı gibi temizleme için önbelleğe alınmış yolların belirtilmesi Front Door ile ilişkilendirilmiş joker karakter etki alanları için geçerli değildir. Şu anda joker karakter etki alanlarını doğrudan temizlemeyi desteklemiyoruz. Bu belirtimsel alt etki alanını ve temizleme yolunu belirterek yolları belirli alt etki alanından temizleyebilirsiniz. Örneğin, Front Door'um varsa *.contoso.comyazarak alt etki alanımın foo.contoso.comfoo.contoso.com/path/*varlıklarını temizleyebilirim. Şu anda, içerik temizleme yolunda konak adlarının belirtilmesi, varsa joker etki alanlarının alt etki alanlarıyla sınırlıdır.

Front Door'daki önbellek temizleme işlemleri büyük/küçük harfe duyarlı değildir. Buna ek olarak, sorgu dizesi belirsizdir, bu da URL'yi temizlemenin tüm sorgu dizesi çeşitlemelerini temizlediği anlamına gelir.

Önbellek süre sonu

Bir öğenin önbelleğimizde ne kadar süre depolandığını belirlemek için aşağıdaki üst bilgi sırası kullanılır:

  1. Cache-Control: s-maxage=<seconds>
  2. Cache-Control: max-age=<seconds>
  3. Expires: <http-date>

Bazı Cache-Control yanıt üst bilgisi değerleri, yanıtın önbelleğe alınamaz olduğunu gösterir. Bu değerler , no-cacheve no-storedeğerlerini içerirprivate. Front Door bu üst bilgi değerlerini dikkate alır ve Kural Altyapısı'nı kullanarak önbelleğe alma davranışını geçersiz kılsanız bile yanıtları önbelleğe almaz.

Kaynaktan Cache-Control gelen yanıtta üst bilgi yoksa, Front Door varsayılan olarak bir ile üç gün arasında bir önbellek süresini rastgele belirler.

Not

Önbellek süre sonu 366 günden uzun olamaz.

Yanıt üst bilgisinde Cache-Control görebilirsinizREVALIDATED_HIT. Bu, Azure Front Door'da önbelleğe alınan içeriğin istemciye sunulmadan önce kaynak sunucuyla yeniden doğrulandığını gösterir. Önbelleğe alınan içeriğin süresi dolduğunda, ancak kaynak sunucu içeriğin değişmediğini gösterdiğinde bu durum oluşabilir. Bu durumda, önbelleğe alınan içerik istemciye sunulur ve önbellek süre sonu sıfırlanır.

İstek üst bilgileri

Önbelleğe alma etkinleştirildiğinde aşağıdaki istek üst bilgileri kaynağın kaynağına iletilir:

  • Content-Length
  • Transfer-Encoding
  • Accept
  • Accept-Charset
  • Accept-Language

Yanıt üst bilgileri

Kaynak yanıtı önbelleğe alınamazsa, Set-Cookie yanıt istemciye gönderilmeden önce üst bilgi kaldırılır. Kaynak yanıtı önbelleğe alınamazsa Front Door üst bilgiyi ayırmaz. Örneğin, kaynak yanıt değeri olan bir Cache-Controlmax-age üst bilgi içeriyorsa Front Door'a yanıtın önbelleğe alınıp Set-Cookie üst bilgi kaldırıldığını gösterir.

Buna ek olarak, Front Door üst bilgiyi tüm yanıtlara ekler X-Cache . Yanıt X-Cache üst bilgisi aşağıdaki değerlerden birini içerir:

  • TCP_HIT veya TCP_REMOTE_HIT: Yanıtın ilk 8 MB'lık öbeği önbellek isabetidir ve içerik Front Door önbelleğinden sunulur.
  • TCP_MISS: Yanıtın ilk 8 MB'lık öbeği önbellek kaçırma işlemidir ve içerik kaynaktan getirilir.
  • PRIVATE_NOSTORE: Cache-Control yanıt üst bilgisi özel veya depo yok olarak ayarlandığından istek önbelleğe alınamıyor.
  • CONFIG_NOCACHE: İstek Front Door profilinde önbelleğe alınmayacak şekilde yapılandırıldı.

Günlükler ve raporlar

Erişim günlüğü her isteğin önbellek durumunu içerir. Ayrıca raporlar, Azure Front Door önbelleğinin uygulamanızda nasıl kullanıldığı hakkında bilgi içerir.

Erişim günlüğü her isteğin önbellek durumunu içerir.

Önbellek davranışı ve süresi

Önbellek davranışı ve süresi Kural Altyapısı'nda yapılandırılabilir. Kural Altyapısı önbelleğe alma yapılandırması her zaman yol yapılandırmasını geçersiz kılar.

  • Önbelleğe alma devre dışı bırakıldığında, kaynak yanıt yönergelerinden bağımsız olarak Azure Front Door yanıt içeriğini önbelleğe almaz.

  • Önbelleğe alma etkinleştirildiğinde, kural altyapısı tarafından uygulanan önbellek davranışı değerine bağlı olarak önbellek davranışı farklıdır:

    • Onur kaynağı: Azure Front Door her zaman kaynak yanıt üst bilgisi yönergesi uyarır. Kaynak yönergesi eksikse, Azure Front Door içeriği bir ila üç gün arasında herhangi bir yerde önbelleğe alır.
    • Her zaman geçersiz kıl: Azure Front Door her zaman önbellek süresiyle geçersiz kılar; başka bir deyişle, kaynak yanıt yönergelerindeki değerleri yoksayarak önbellek süresi içeriğini önbelleğe alır. Bu davranış yalnızca yanıt önbelleğe alınıyorsa geçerlidir.
    • Kaynak eksikse geçersiz kıl: Kaynak önbelleğe alma TTL değerlerini döndürmezse, Azure Front Door belirtilen önbellek süresini kullanır. Bu davranış yalnızca yanıt önbelleğe alınıyorsa geçerlidir.

Not

  • Azure Front Door, içeriğin önbellekte depolandığı süreyle ilgili hiçbir garantide bulunmaz. İçerik sık kullanılmıyorsa, önbelleğe alınan içerik, içeriğin süresi dolmadan önce kenar önbelleğinden kaldırılabilir. Önbelleğe alınan verilerin süresi dolmuş olsa bile Front Door önbellekten veri verebilir. Bu davranış, çıkış noktalarınız çevrimdışı olduğunda sitenizin kısmen kullanılabilir kalmasına yardımcı olabilir.
  • Kaynaklar önbelleksiz, özel veya depo olmayan bir değerle Cache-Control üst bilgisini kullanarak belirli yanıtları önbelleğe almama seçeneğini belirtebilir. Kaynak sunucudan Azure Front Door POP'larına bir HTTP yanıtında kullanıldığında, Azure Front Door Önbellek denetimi yönergelerini destekler ve RFC 7234 - Köprü Metni Aktarım Protokolü'nde (HTTP/1.1) Önbellek Denetimi yönergeleri için önbelleğe alma davranışlarını kabul eder): Önbelleğe Alma (ietf.org).

Önbellek davranışı ve süresi hem Front Door tasarımcısı yönlendirme kuralında hem de Kural Altyapısı'nda yapılandırılabilir. Kural Altyapısı önbelleğe alma yapılandırması her zaman Front Door tasarımcısı yönlendirme kuralı yapılandırmasını geçersiz kılar.

  • Önbelleğe alma devre dışı bırakıldığında, kaynak yanıt yönergelerinden bağımsız olarak Azure Front Door (klasik) yanıt içeriğini önbelleğe almaz.

  • Önbelleğe alma etkinleştirildiğinde, Önbellek varsayılan süresini kullan'ın farklı değerleri için önbellek davranışı farklıdır.

    • Önbelleği kullan varsayılan süresi Evet olarak ayarlandığında, Azure Front Door (klasik) her zaman kaynak yanıt üst bilgisi yönergesine uygundur. Kaynak yönergesi eksikse, Front Door içeriği bir ila üç gün arasında herhangi bir yerde önbelleğe alır.
    • Önbelleği kullan varsayılan süresi Hayır olarak ayarlandığında, Azure Front Door (klasik) her zaman önbellek süresiyle (gerekli alanlar) geçersiz kılar; başka bir deyişle, kaynak yanıt yönergelerindeki değerleri yoksayarak önbellek süresi içeriğini önbelleğe alır.

Not

  • Azure Front Door (klasik), içeriğin önbellekte depolandığı süreyle ilgili hiçbir garantide bulunmaz. İçerik sık kullanılmıyorsa, önbelleğe alınan içerik, içeriğin süresi dolmadan önce kenar önbelleğinden kaldırılabilir. Azure Front Door (klasik), önbelleğe alınan verilerin süresi dolmuş olsa bile önbellekten veri verebilir. Bu davranış, çıkış noktalarınız çevrimdışı olduğunda sitenizin kısmen kullanılabilir kalmasına yardımcı olabilir.
  • Front Door tasarımcısı yönlendirme kuralında ayarlanan önbellek süresi en düşük önbellek süresidir. Kaynak önbellek denetimi üst bilgisinde geçersiz kılma değerinden daha büyük bir TTL varsa bu geçersiz kılma çalışmaz.

Sonraki adımlar