2023'te Linux için En İyi Açık Kaynak Önbellekleme Araçları


Güvenilir dağıtılmış bilgi işlem sistemleri ve uygulamaları, özellikle kritik iş süreçlerinin otomatikleştirilmesi ve yönetilmesi ve müşterilere hizmet sunulması konularında önde gelen işletmelerin temel taşı haline geldi.

Bu sistem ve uygulamaların geliştiricileri ve sistem yöneticileri olarak sizden, mevcut en verimli sistemlere sahip olmanızı sağlayacak her türlü bilgi teknolojisi (BT) çözümünü sağlamanız beklenmektedir.

Bu, son kullanıcılara tatmin edici düzeyde bir hizmet sunmak için sistem/uygulama performansı, güvenilirlik, kullanılabilirlik ve ölçeklenebilirliğe yönelik stratejilerin tasarlanması, test edilmesi ve uygulanması gibi görevleri içerir.

Önbelleğe alma, güvenebileceğiniz çok sayıda temel ancak etkili uygulama sunma tekniklerinden biridir. Daha ileri gitmeden önce önbelleğe almanın ne olduğuna, nerede ve/veya nasıl uygulanabileceğine ve faydalarına kısaca bakalım.

Önbelleğe Alma veya İçerik Önbelleğe Alma Nedir?

Önbelleğe Alma (veya İçerik Önbelleğe Alma), verilerin kopyalarını geçici bir depolama konumunda (önbellek olarak da bilinir) depolamak için yaygın olarak kullanılan bir tekniktir. böylece veriler orijinal depodan alındığında kolay ve hızlı bir şekilde erişilebilir.

Önbellekte depolanan veriler, önbelleğe almanın türüne ve amacına bağlı olarak dosyaları veya dosya parçalarını (HTML dosyaları, komut dosyaları, resimler, belgeler vb.), veritabanı işlemlerini veya kayıtlarını, API çağrılarını, DNS kayıtlarını vb. içerebilir.

Önbellek donanım veya yazılım biçiminde olabilir. Yazılım tabanlı önbellek (bu makalenin odak noktasıdır), bir uygulama yığınının farklı katmanlarına uygulanabilir.

Önbelleğe alma, istemci tarafında (veya uygulama sunum katmanında) uygulanabilir; örneğin, tarayıcıyı önbelleğe alma veya uygulamayı önbelleğe alma (veya çevrimdışı mod). Tüm modern tarayıcılar olmasa da çoğu, bir HTTP önbellek uygulamasıyla birlikte gelir.

Bir web uygulamasına erişirken, tarayıcının eski bir kopyasını kullanması yerine, bir web sitesi veya uygulamadaki en son verileri veya içeriği görmenizi sağlamak için popüler "önbelleğinizi temizleyin" ifadesini duymuş olabilirsiniz. içerik yerel olarak depolanır.

İstemci tarafı önbelleğe almanın başka bir örneği, işletim sistemi (OS) düzeyinde gerçekleşen DNS önbelleğe alma'dır. İşletim sistemi veya web tarayıcısı tarafından önceki DNS aramaları hakkındaki bilgilerin geçici olarak depolanmasıdır.

Önbelleğe alma, proxy'ler aracılığıyla LAN veya WAN'da ağ düzeyinde de uygulanabilir. Bu tür önbelleğe almanın yaygın bir örneği, web proxy sunucularının küresel olarak dağıtılmış ağları olan CDN'ler'lerdedir (İçerik Dağıtım Ağları).

Üçüncüsü, önbelleğe almayı kaynak veya arka uç sunucu(lar)ında da uygulayabilirsiniz. Sunucu düzeyinde önbelleğe almanın farklı biçimleri vardır; bunlar şunları içerir:

  • web sunucusunu önbelleğe alma (resimleri, belgeleri, komut dosyalarını vb. önbelleğe almak için).
  • uygulamayı önbelleğe alma veya ezberleme (diskteki dosyaları, diğer hizmetlerden veya işlemlerden verileri okumakta veya bir API'den veri istemekte vb. kullanılır).
  • veritabanı önbelleğe alma (istenen veritabanı satırları, sorgu sonuçları ve diğer işlemler gibi sık kullanılan verilere bellek içi erişim sağlamak için).

Önbellek verilerinin veritabanı, dosya, sistem belleği vb. dahil olmak üzere herhangi bir depolama sisteminde saklanabileceğini ancak birincil kaynaktan daha hızlı bir ortam olması gerektiğini unutmayın. Bu bağlamda, bellek içi önbelleğe alma, önbelleğe almanın en etkili ve yaygın olarak kullanılan şeklidir.

Önbelleğe Alma Neden Kullanılır?

Önbelleğe alma, aşağıdakiler de dahil olmak üzere çok sayıda avantaj sunar:

  • Veritabanı düzeyinde, önbelleğe alınan veriler için okuma performansını mikrosaniyelere kadar artırır. Verilerin belleğe yazıldığı ve daha sonra belirli aralıklarla diske veya ana depolama birimine yazıldığı yazma performansını iyileştirmek için bir geri yazma önbelleği de kullanabilirsiniz. Ancak bunun veri bütünlüğü yönü potansiyel olarak feci sonuçlara yol açabilir. Örneğin, veriler ana depolamaya aktarılmadan hemen önce sistem çöktüğünde.
  • Uygulama düzeyinde, bir önbellek, sıklıkla okunan verileri uygulama sürecinin kendisinde depolayabilir, böylece özellikle ağ üzerinden veri arama sürelerini saniyelerden mikrosaniyelere indirebilir.
  • Genel uygulama ve sunucu performansı göz önüne alındığında, önbelleğe alma, önbelleğe alınan veriler istemcilere sunulurken sunucunuzun yükünü, gecikme süresini ve ağ bant genişliğini azaltmanıza yardımcı olur, böylece istemcilere yanıt süresini ve teslimat hızlarını artırır.
  • Önbelleğe alma ayrıca içeriğin özellikle CDN'ler aracılığıyla kullanılabilirliğine ve diğer birçok avantaja olanak tanır.

Bu makalede, sunucu tarafı uygulamaya yönelik en iyi açık kaynak (uygulama/veritabanı önbelleğe alma ve proxy sunucularını önbelleğe alma) araçlarından bazılarını inceleyeceğiz. Linux'ta önbelleğe alma.

1. Redis

Redis (tam anlamıyla Uzak Sözlük Sunucusu), tüm programlama dillerinde olmasa da çoğunda kullanılabilen, ücretsiz ve açık kaynaklı, hızlı, yüksek performanslı ve esnek, dağıtılmış bir bellek içi bilgi işlem sistemidir.

Önbelleğe alma motoru, bellek içi kalıcı disk veritabanı ve mesaj aracısı olarak çalışan bir bellek içi veri yapısı deposudur. Redis, Linux (dağıtım için önerilen platform) ve OS X'te geliştirilmiş ve test edilmiş olmasına rağmen, *BSD gibi diğer POSIX sistemlerinde de herhangi bir harici bağımlılık olmadan çalışır.

Redis dizeler, karmalar, listeler, kümeler, sıralanmış kümeler, bit eşlemler, akışlar ve daha fazlası gibi çok sayıda veri yapısını destekler. Bu, programcıların belirli bir sorunu çözmek için belirli bir veri yapısını kullanmasını sağlar. Veri yapısında bir dizgeye ekleme, öğeleri bir listeye itme, karma değerini artırma, küme kesişimini hesaplama ve daha fazlası gibi otomatik işlemleri destekler.

Temel özellikleri arasında Redis ana-bağımlı kopyası (varsayılan olarak eşzamansız olan), Redis Sentinel kullanılarak sunulan yüksek kullanılabilirlik ve otomatik yük devretme, Redis kümesi (daha fazla küme düğümü ekleyerek yatay olarak ölçeklendirebilirsiniz) ve veri bölümleme (verilerin birden fazla Redis arasında dağıtılması) yer alır. örnekler). Ayrıca işlemler için destek, Lua komut dosyası oluşturma, çeşitli kalıcılık seçenekleri ve istemci-sunucu iletişiminin şifrelenmesi gibi özelliklere de sahiptir.

Bellek içi ancak kalıcı bir disk üstü veritabanı olan Redis, bellek içi veri kümesiyle en iyi şekilde çalıştığında en iyi performansı sunar. Ancak bunu MySQL, PostgreSQL ve çok daha fazlası gibi diskteki bir veritabanıyla kullanabilirsiniz. Örneğin, Redis'te yazma ağırlıklı küçük verileri alabilir ve verilerin diğer parçalarını diskteki bir veritabanında bırakabilirsiniz.

Redis, güvenliği birçok yönden destekler: Redis örneklerine harici ağlardan erişilmesini engellemek için "korumalı mod" özelliğinin kullanılması. Ayrıca istemci-sunucu kimlik doğrulamasını (bir parolanın sunucuda yapılandırıldığı ve istemcide sağlandığı) ve istemci bağlantıları, çoğaltma bağlantıları, Redis Kümesi veri yolu protokolü ve daha fazlası gibi tüm iletişim kanallarında TLS'yi destekler.

Redis'in veritabanı önbelleğe alma, tam sayfa önbelleğe alma, kullanıcı oturumu veri yönetimi, API yanıtları depolama, Yayınlama/Abone Olma mesajlaşma sistemi, mesaj kuyruğu ve daha fazlasını içeren çok sayıda kullanım durumu vardır. Bunlar oyunlarda, sosyal ağ uygulamalarında, RSS beslemelerinde, gerçek zamanlı veri analizlerinde, kullanıcı önerilerinde vb. uygulanabilir.

2. Memcached

Memcached, ücretsiz ve açık kaynaklı, basit ama güçlü, dağıtılmış bir bellek nesnesi önbellekleme sistemidir. Veritabanı çağrıları, API çağrıları veya sayfa oluşturma sonuçları gibi küçük veri parçaları için bellek içi bir anahtar/değer deposudur. Linux ve OS X dahil Unix benzeri işletim sistemlerinde ve ayrıca Microsoft Windows'ta çalışır.

Bir geliştirici aracı olarak, içeriği önbelleğe alarak (varsayılan olarak En Son Kullanılan (LRU) önbelleği) dinamik web uygulamalarının hızlarını artırmak ve böylece diskteki veritabanı yükü - uygulamalar için kısa süreli bellek görevi görür. En popüler programlama dilleri için bir API sunar.

Memcached tek veri türü olarak dizeleri destekler. Mantığın yarısının istemci tarafında ve diğer yarısının sunucu tarafında gerçekleştiği bir istemci-sunucu mimarisine sahiptir. Daha da önemlisi, müşteriler bir öğe için hangi sunucuya yazacaklarını veya hangi sunucudan okuyacaklarını nasıl seçeceklerini anlarlar. Ayrıca istemci bir sunucuya bağlanamadığında ne yapması gerektiğini çok iyi bilir.

Dağıtılmış bir önbellekleme sistemi olmasına ve dolayısıyla kümelemeyi desteklemesine rağmen, Memcached sunucularının birbirlerinden bağlantısı kesilmiştir (yani birbirlerinden habersizdirler). Bu da Redis'teki gibi bir replikasyon desteğinin olmadığı anlamına geliyor. Ayrıca öğelerin nasıl saklanacağını ve getirileceğini ve hafızanın ne zaman tahliye edileceğini veya yeniden kullanılacağını yöneteceklerini de biliyorlar. Daha fazla sunucu ekleyerek kullanılabilir belleği artırabilirsiniz.

Memcached 1.5.13'ten itibaren TLS aracılığıyla kimlik doğrulamayı ve şifrelemeyi desteklemektedir ancak bu özellik henüz deneysel aşamadadır.

3. Apache Ateşlemesi

Apache Ignite, aynı zamanda ücretsiz ve açık kaynaklı, yatay olarak ölçeklenebilir, dağıtılmış bellek içi anahtar/değer deposu, önbellek ve dağıtılmış verileri hesaplamak için güçlü işleme API'leri sağlayan çok modelli bir veritabanı sistemidir. Aynı zamanda bellekte veya Ignite yerel kalıcılığıyla kullanılabilen bir bellek içi veri ızgarasıdır. Linux ve ayrıca Windows gibi UNIX benzeri sistemlerde çalışır.

Çok katmanlı depolama, eksiksiz SQL desteği ve birden çok küme düğümünde ACID (Atomiklik, Tutarlılık, Yalıtım, Dayanıklılık) işlemleri (yalnızca anahtar/değer API düzeyinde desteklenir), ortak konumlu işleme, ve makine öğrenimi. Herhangi bir RDBMS (MySQL, PostgreSQL, Oracle Database vb. gibi) veya NoSQL mağazaları dahil olmak üzere tüm üçüncü taraf veritabanlarıyla otomatik entegrasyonu destekler.

Ignite'ın bir SQL veri deposu olarak çalışmasına rağmen tam olarak bir SQL veritabanı olmadığını unutmamak önemlidir. Geleneksel veritabanlarına kıyasla kısıtlamaları ve dizinleri belirgin bir şekilde ele alır; birincil ve ikincil dizinleri destekler, ancak benzersizliği sağlamak için yalnızca birincil dizinler kullanılır. Ayrıca yabancı anahtar kısıtlamaları için desteği yoktur.

Ignite ayrıca sunucuda kimlik doğrulamayı etkinleştirmenize ve istemcilere kullanıcı kimlik bilgileri sağlamanıza izin vererek güvenliği de destekler. Ayrıca tüm Ignite düğümleri arasında güvenli bir bağlantı sağlamak için SSL soket iletişimi desteği de mevcuttur.

Ignite'ın önbelleğe alma sistemleri, sistem iş yükünü hızlandırma, gerçek zamanlı veri işleme ve analiz gibi birçok kullanım durumu vardır. Aynı zamanda grafik merkezli bir platform olarak da kullanılabilir.

4. Couchbase Sunucusu

Couchbase Server aynı zamanda verileri anahtar/değer formatında öğeler halinde depolayan, açık kaynaklı, dağıtılmış, NoSQL belge odaklı bir etkileşim veritabanıdır. Linux'ta ve Windows ve Mac OS X gibi diğer işletim sistemlerinde çalışır. Veriler üzerinde milisaniyenin altındaki işlemleri desteklemek için güçlü sorgulama ve indeksleme hizmetleri sağlayan, N1QL adı verilen, zengin özelliklere sahip, belge odaklı bir sorgulama dili kullanır.

Dikkate değer özellikleri, yönetilen önbelleğe sahip hızlı bir anahtar/değer deposu, amaca yönelik oluşturulmuş dizin oluşturucular, güçlü bir sorgu motoru, ölçeklendirme mimarisi (çok boyutlu ölçeklendirme), büyük veri ve SQL entegrasyonu, tam yığın güvenliği ve yüksek kullanılabilirliktir.

Couchbase Server, bir küme yöneticisi aracının tüm düğüm etkinliklerini koordine ettiği ve istemcilere yalnızca küme çapında bir arayüz sağladığı yerel çoklu örnek küme desteğiyle birlikte gelir. Daha da önemlisi, hiçbir kesinti olmadan düğümleri gerektiği gibi ekleyebilir, kaldırabilir veya değiştirebilirsiniz. Ayrıca bir kümenin düğümleri arasında veri çoğaltmayı ve veri merkezleri arasında seçici veri çoğaltmayı da destekler.

Özel Couchbase Sunucu bağlantı noktalarını, farklı kimlik doğrulama mekanizmalarını (kimlik bilgilerini veya sertifikaları kullanarak), rol tabanlı erişim kontrolünü (kimliği doğrulanmış her kullanıcıyı kendilerine atanan sistem tanımlı roller için kontrol etmek için), denetimi, günlükleri ve oturumları kullanarak TLS aracılığıyla güvenliği uygular. .

Kullanım durumları arasında birleşik bir programlama arayüzü, tam metin araması, paralel sorgu işleme, belge yönetimi, indeksleme ve çok daha fazlası yer alır. Büyük ölçekli etkileşimli web, mobil ve IoT uygulamaları için düşük gecikmeli veri yönetimi sağlamak üzere özel olarak tasarlanmıştır.

5. Hazelcast IMDG

Hazelcast IMDG (Bellek İçi Veri Izgarası), elastik olarak ölçeklenebilir dağıtılmış Bellek İçi bilgi işlem sağlayan, açık kaynaklı, hafif, hızlı ve genişletilebilir bir bellek içi veri ızgarası ara yazılımıdır. Hazelcast IMDG ayrıca Linux, Windows, Mac OS X ve Java'nın yüklü olduğu diğer platformlarda da çalışır. Harita, Set, Liste, MultiMap, RingBuffer ve HyperLogLog gibi çok çeşitli esnek ve dile özgü veri yapılarını destekler.

Hazelcast eşler arasıdır ve basit ölçeklenebilirliği, küme kurulumunu (istatistik toplama, JMX protokolü aracılığıyla izleme ve yararlı yardımcı programlarla kümeyi yönetme seçenekleriyle), dağıtılmış veri yapılarını ve olaylarını, veri bölümlendirmeyi destekler ve işlemler. Ayrıca her veri girişinin yedeğini birden fazla üyede tuttuğu için gereksizdir. Kümenizi ölçeklendirmek için başka bir örneği başlatmanız yeterlidir; veriler ve yedeklemeler otomatik ve eşit şekilde dengelenir.

Maksimum işlem hızı için kümenizdeki CPU'lara erişmenizi sağlayan kullanışlı API'lerden oluşan bir koleksiyon sağlar. Ayrıca Java'dan Map, Queue, ExecutorService, Lock ve JCache gibi çok sayıda geliştirici dostu arayüzün dağıtılmış uygulamalarını da sunar.

Güvenlik özellikleri arasında küme üyeleri ve istemci kimlik doğrulaması ve JAAS tabanlı güvenlik özellikleri aracılığıyla istemci işlemlerine ilişkin erişim kontrolü kontrolleri yer alır. Ayrıca istemciler tarafından yürütülen soket bağlantılarının ve uzaktan işlemlerin ele geçirilmesine, küme üyeleri arasında soket düzeyinde iletişim şifrelemesine ve SSL/TLS soket iletişiminin etkinleştirilmesine olanak tanır. Ancak resmi belgelere göre bu güvenlik özelliklerinin çoğu Enterprise sürümünde sunuluyor.

En popüler kullanım durumu, dağıtılmış bellek içi önbelleğe alma ve veri depolamadır. Ancak aynı zamanda web oturumu kümelemesi, NoSQL değişimi, paralel işleme, kolay mesajlaşma ve çok daha fazlası için de dağıtılabilir.

6. Mc Yönlendirici

Mcrouter, Facebook tarafından geliştirilen ve bakımı yapılan, Memcached dağıtımlarını ölçeklendirmeye yönelik ücretsiz ve açık kaynaklı bir Memcached protokol yönlendiricisidir. Memcached ASCII protokolü, esnek yönlendirme, çoklu küme desteği, çok düzeyli önbellekler, bağlantı havuzu oluşturma, çoklu karma şemaları, önek yönlendirme, çoğaltılmış havuzlar, üretim trafiği gölgeleme, çevrimiçi yeniden yapılandırma ve hedef sağlığı izleme/otomatik yük devretme özelliklerine sahiptir.

Ek olarak, soğuk önbellek ısınmasını, zengin istatistikleri ve hata ayıklama komutlarını, güvenilir silme akışı hizmet kalitesini, büyük değerleri ve yayın işlemlerini destekler ve IPv6 ve SSL desteğiyle birlikte gelir.

Facebook ve Instagram'da, önbellek altyapısının temel bileşeni olarak, en yüksek seviyede saniyede neredeyse 5 milyar isteği işlemek için kullanılıyor.

7. Vernik Önbelleği

Varnish Cache, web istemcileri ile kaynak sunucu arasında yer alan açık kaynaklı, esnek, modern ve çok amaçlı bir web uygulaması hızlandırıcıdır. Tüm modern Linux, FreeBSD ve Solaris (yalnızca x86) platformlarında çalışır. İstemci isteklerini alıp web sunucusuna iletmek ve web'i teslim etmek için varsayılan HTTP bağlantı noktasını dinlemek üzere NGINX, Apache ve diğerleri gibi bir web sunucusunun önünde konuşlandırabileceğiniz mükemmel bir önbellekleme motoru ve içerik hızlandırıcıdır. sunucuların istemciye yanıtı.

Vernik Önbelleği, istemciler ve kaynak sunucular arasında aracı görevi görürken çeşitli avantajlar sunar; bu öğe, web sunucunuzun yükünü hafifletmek ve istemcilere teslimat hızlarını artırmak için web içeriğini bellekte önbelleğe almaktır.

Bir istemciden bir HTTP isteği aldıktan sonra, bunu arka uç web sunucusuna iletir. Web sunucusu yanıt verdiğinde, Varnish içeriği bellekte önbelleğe alır ve yanıtı istemciye iletir. İstemci aynı içeriği istediğinde, Varnish bunu önbellek artırıcı uygulama yanıtından sunacaktır. Önbellekten içerik sunamıyorsa istek arka uca iletilir ve yanıt önbelleğe alınarak istemciye iletilir.

Varnish, isteklerin nasıl ele alınacağını ve daha fazlasını yapılandırmak için kullanılan VCL'yi (Varnish Configuration Language – esnek, alana özel bir dil) içerir, Varnish Varnish Cache'in uzantıları olan modüller (VMODS).

Güvenlik açısından Varnish Cache, VMODS aracılığıyla günlüğe kaydetmeyi, istek incelemeyi, kısıtlamayı, kimlik doğrulamayı ve yetkilendirmeyi destekler, ancak SSL/TLS için yerel destekten yoksundur. Hitch veya NGINX gibi bir SSL/TLS proxy'si kullanarak Vernik Önbelleği için HTTPS'yi etkinleştirebilirsiniz.

Varnish Cache'i ayrıca bir web uygulaması güvenlik duvarı, DDoS saldırı savunucusu, sıcak bağlantı koruyucusu, yük dengeleyici, entegrasyon noktası, tek oturum açma ağ geçidi, kimlik doğrulama ve yetkilendirme politikası mekanizması, kararsız arka uçlar için hızlı düzeltme ve HTTP istek yönlendiricisi olarak da kullanabilirsiniz.

8. Kalamar Önbelleğe Alma Proxy'si

Linux için bir başka ücretsiz ve açık kaynaklı, olağanüstü ve yaygın olarak kullanılan proxy ve önbellekleme çözümü Squid'dir. HTTP, HTTPS ve FTP gibi popüler ağ protokolleri için proxy ve önbellek hizmetleri sağlayan, zengin özelliklere sahip bir web proxy önbellek sunucusu yazılımıdır. Ayrıca diğer UNIX platformlarında ve Windows'ta da çalışır.

Tıpkı Varnish Cache gibi, istemcilerden istekleri alır ve bunları belirtilen arka uç sunucularına iletir. Arka uç sunucusu yanıt verdiğinde içeriğin bir kopyasını önbellekte saklar ve istemciye iletir. Aynı içeriğe yönelik gelecekteki istekler önbellekten sunulacak ve böylece içeriğin müşteriye daha hızlı teslim edilmesi sağlanacak. Böylece performansı artırmak için istemci ve sunucu arasındaki veri akışını optimize eder ve ağ trafiğini azaltmak ve bant genişliğinden tasarruf etmek için sık kullanılan içeriği önbelleğe alır.

Squid, yükü proxy sunucuların birbirleriyle iletişim kuran hiyerarşileri üzerine dağıtma, web kullanım kalıplarına ilişkin veriler üretme (örneğin, en çok ziyaret edilen siteler hakkındaki istatistikler) gibi özelliklerle birlikte gelir; proxy'lenen mesajları analiz etmenize, yakalamanıza, engellemenize, değiştirmenize veya değiştirmenize olanak tanır.

Ayrıca zengin erişim kontrolü, yetkilendirme ve kimlik doğrulama, SSL/TLS desteği ve etkinlik günlüğü tutma gibi güvenlik özelliklerini de destekler.

9. NGINX

NGINX (Engine-X olarak telaffuz edilir), web altyapısı kurmaya yönelik açık kaynaklı, yüksek performanslı, tam özellikli ve çok popüler birleştirilmiş bir çözümdür. Bu bir HTTP sunucusu, bir ters proxy sunucusu, bir posta proxy sunucusu ve genel bir TCP/UDP proxy sunucusudur.

NGINX, önbelleğe alınan içeriğin diskteki kalıcı bir önbellekte depolandığı temel önbelleğe alma yetenekleri sunar. NGINX'te içeriği önbelleğe almanın büyüleyici yanı, kaynak sunuculardan yeni içerik getiremediğinde eski içeriği önbelleğinden dağıtacak şekilde yapılandırılabilmesidir.

NGINX, web sistemlerinizin güvenliğini sağlamak için çok sayıda güvenlik özelliği sunar; bunlar arasında SSL sonlandırma, HTTP temel kimlik doğrulamasıyla erişimi kısıtlama, alt istek sonucuna dayalı kimlik doğrulama, JWT kimlik doğrulama, proxy HTTP kaynaklarına erişimi kısıtlama, erişimi coğrafi konuma göre kısıtlama, ve daha fazlası.

Genellikle bir uygulama yığınında ters proxy, yük dengeleyici, SSL sonlandırıcı/güvenlik ağ geçidi, uygulama hızlandırıcı/içerik önbelleği ve API ağ geçidi olarak dağıtılır. Ayrıca medya akışı için de kullanılır.

10. Apache Trafik Sunucusu

Son olarak, HTTP/1.1 ve HTTP/2.0 desteğine sahip, açık kaynaklı, hızlı, ölçeklenebilir ve genişletilebilir bir önbelleğe alma proxy sunucusu olan Apache Traffic Server'a sahibiz. Kuruluşlar, İSS'ler (İnternet Sunucusu Sağlayıcıları), omurga sağlayıcıları ve daha fazlası için ağın ucunda sık erişilen içeriği önbelleğe alarak ağ verimliliğini ve performansını artırmak üzere tasarlanmıştır.

HTTP/HTTPS trafiğinin hem ileri hem de geri proxy'lenmesini destekler. Aynı anda modlardan birinde veya her ikisinde çalışacak şekilde de yapılandırılabilir. Kalıcı önbelleğe alma, eklenti API'leri içerir; ICP (İnternet Önbellek Protokolü), ESI (Kenar Tarafı İçerir) desteği; Canlı Tut ve daha fazlası.

Güvenlik açısından Traffic Server, proxy önbelleğini kullanmasına izin verilen istemcileri yapılandırmanıza, istemcilerle kendisi arasındaki ve kendisi ile kaynak sunucu arasındaki bağlantılar için SSL sonlandırmasına izin vererek istemci erişimini kontrol etmeyi destekler. Ayrıca bir eklenti aracılığıyla kimlik doğrulamayı ve temel yetkilendirmeyi, günlüğe kaydetmeyi (aldığı her isteğin ve algıladığı her hatanın) ve izlemeyi destekler.

Traffic Server, web proxy önbelleği, ileri proxy, ters proxy, şeffaf proxy, yük dengeleyici olarak veya önbellek hiyerarşisinde kullanılabilir.

Son sözler

Önbelleğe alma, öncelikle web sitelerinin veya uygulamaların hızını artırmak için tasarlanmış, en faydalı ve en köklü web içeriği dağıtım teknolojilerinden biridir. Önbelleğe alınan veriler istemcilere sunulduğu için sunucunuzun yükünü, gecikme süresini ve ağ bant genişliğini azaltmanıza yardımcı olur, böylece uygulama yanıt süresini ve istemcilere teslim hızlarını artırır.

Bu makalede, Linux sistemlerinde kullanılacak en iyi açık kaynak önbellekleme araçlarını inceledik. Burada listelenmeyen diğer açık kaynaklı önbellekleme araçlarını biliyorsanız lütfen aşağıdaki geri bildirim formunu kullanarak bunları bizimle paylaşın. Siz de bu yazımız hakkındaki düşüncelerinizi bizimle paylaşabilirsiniz.