Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 2246|Yanıt: 0

[Web] Nginx'in Web Kaynak Önbelleklemesi (CDN)

[Bağlantıyı kopyala]
Yayınlandı 17.07.2024 22:10:31 | | | |
Web önbelleklemeden önce CDN'den bahsedelim; içerik dağıtım ağı (CDN), bir taşıyıcı ağın üzerine inşa edilen ve kapsanan, dünyanın dört bir yanındaki kenar düğüm sunucu filolarından oluşan dağıtık bir ağdır. CDN, kaynak sunucusundaki baskıyı paylaşabilir, ağ sıkışıklığını önleyebilir, web sitesi içeriğinin farklı bölgelerde ve senaryolarda dağıtımını sağlayabilir ve kaynak erişim hızını artırabilir. CDN, kaynak sunucusu kaynaklarını dünya genelindeki IDC'nin hızlandırma düğümlerine önbellekler; böylece son kullanıcılar kaynak sunucusu kaynaklarına erişim talep edip elde ettiklerinde, yakınlardaki CDN düğümlerinde önbelleklenmiş kaynakları elde edebilecek, kaynak erişim hızını artırabilir ve baskıyı kaynak sunucularına paylaşabilirler.

Aşağıdaki şekilde gösterildiği gibi:



Basitçe söylemek gerekirse, kullanıcılar bazı statik kaynaklara eriştiğinde, CDN'yi kullandıktan sonra bunları kaynak sunucudan elde etmezler, hesaplama ve geri veriyle mevcut kullanıcıya en yakın CDN hizmetini bulurlar.

Web önbellekleme değerleri, kullanıcı ile kaynak sunucu arasında bir hizmettir ve Nginx web önbellekleme yeteneklerini doğal olarak sağlar. Diğerleri arasında Varnish, Squid ve Cachewall bulunur; bunlar web önbellekleme proxy'leridir (bazıları sadece web önbellekleme sağlamakla kalmaz).

Nginx önbellek yapılandırma dokümantasyonu hakkında:Bağlantı girişi görünür.

İlk olarak, bir kaynağa önbellek servisi üzerinden ilk eriştiğimizde, önbellek durumu şudur:BAYAN, aşağıdaki şekilde gösterildiği gibi orijin sunucusundan onu çekmesini talep eder:



Kaynağa ikinci kez eriştiğimizde, kaynağın önbelleğe alındığını ve durumun şu olduğunu göreceğizVURMAK, aşağıdaki şekilde gösterildiği gibi:



Nginx'in ana yapılandırma parametreleri şunlardır:

Ana parametreler:

proxy_cache_path/data/nginx/cache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=180d use_temp_path=off;

●path: Önbelleğe alınan dosyaların depolama yolunu belirleyen zorunlu bir parametre.
●levels: Önbellek dizininin hiyerarşisini tanımlar. Her katman, ortada : ile ayrılmış 1 (en fazla 16 seçenek, 0-f) veya 2 (en fazla 256 seçenek, 00-ff) ile temsil edilebilir.
proxy_cache_path /data/nginx/cache;  Bu, tüm önbelleklerin yalnızca bir dizinine sahip olduğu anlamına gelir, örneğin /data/nginx/cache/d7b6e5978e3f042f52e875005925e51b
proxy_cache_path /data/nginx/cache levels=1:2;  Bu, önbelleğin ikinci kademe bir dizin olduğu anlamına gelir (16*256=4096 dizin ile), örneğin /data/nginx/cache/b/51/d7b6e5978e3f042f52e875005925e51b
● keys_zone: Zorunlu parametre, paylaşılan bellek alanının adını ve boyutunu tanımlar; bu alan, önbellek öğesinin meta verilerini (tüm aktif anahtarlar ve önbelleğe bağlı veriler) depolamak için kullanılır, böylece nginx bir isteğin önbelleğe ulaşıp kaçırıp ulaşmadığını hızlıca belirleyebilir, 1m 8000 anahtar, 10m 80000 anahtar, 10m 80000 anahtar depolayabilir.
●inaktiv: Belirlenen süre içinde erişilmemiş önbellek dosyalarını siler, varsayılan olarak 10 dakika.
●max_size: Önbellek depolama üst sınırı belirlenmiştir ve belirtilmezse tüm disk alanı en fazla kullanılacaktır.
● use_temp_path: Geçici dosyaları doğrudan önbellek dizinine yerleştirin.


proxy_cachemy_cache;      #指定用于页面缓存的共享内存, bölge adı proxy_cache_path direktifle tanımlanır
proxy_cache_min_uses1;   ##, önbellekleme eşiğini, isteğin kaç kez önbelleğe alındığını belirtir ve israfı önlemek için düşük frekanslı istekleri önbellemez.
proxy_cache_valid200 3m;  #为不同的响应状态码设置不同的缓存时间, bu bir talep önbellek durum kodu 200 ve önbellek süresi 3 dakika
proxy_cache_key$request_uri; #指定缓存文件的key为请求的URI
add_headernginx-cache-status $upstream_cache_status;  #把缓存状态设置为头部信息, müşteriye yanıt ver
proxy_passhttp://webservers;  #设置代理转发的后端服务器的协议和地址

Sorgu dizelerini görmezden gelmek için bir Nginx önbellek proxysi kullanın

(Son)




Önceki:Geri dönüş betiği oluşturmak için dotnet-ef aracını kullanın
Önümüzdeki:Test sitesinin HTTP/3 desteğini kontrol etmek için curl kullanın
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com