Website-Suche

Beste Open-Source-Caching-Tools für Linux im Jahr 2023


Zuverlässige verteilte Computersysteme und -anwendungen sind zum Grundpfeiler namhafter Unternehmen geworden, insbesondere bei der Automatisierung und Verwaltung geschäftskritischer Geschäftsprozesse und der Bereitstellung von Diensten für Kunden.

Als Entwickler und Systemadministratoren dieser Systeme und Anwendungen wird von Ihnen erwartet, dass Sie alle Arten von IT-Lösungen bereitstellen, die sicherstellen, dass Sie über die effizientesten verfügbaren Systeme verfügen.

Dazu gehören Aufgaben wie das Entwerfen, Testen und Implementieren von Strategien für System-/Anwendungsleistung, Zuverlässigkeit, Verfügbarkeit und Skalierbarkeit, um Endbenutzern ein zufriedenstellendes Serviceniveau zu bieten.

Caching ist eine der vielen sehr einfachen, aber effektiven Techniken zur Anwendungsbereitstellung, auf die Sie sich verlassen können. Bevor wir weitermachen, schauen wir uns kurz an, was Caching ist, wo und/oder wie es angewendet werden kann und welche Vorteile es bietet.

Was ist Caching oder Content-Caching?

Caching (oder Content Caching) ist eine weit verbreitete Technik zum Speichern von Kopien von Daten an einem temporären Speicherort (auch bekannt als Cache). sodass auf die Daten einfach und schnell zugegriffen werden kann, wenn sie aus dem ursprünglichen Speicher abgerufen werden.

Die in einem Cache gespeicherten Daten können je nach Art und Zweck des Cachings Dateien oder Dateifragmente (z. B. HTML-Dateien, Skripte, Bilder, Dokumente usw.), Datenbankoperationen oder -datensätze, API-Aufrufe, DNS-Datensätze usw. umfassen.

Ein Cache kann in Form von Hardware oder Software vorliegen. Softwarebasierter Cache (auf den sich dieser Artikel konzentriert) kann auf verschiedenen Ebenen eines Anwendungsstapels implementiert werden.

Caching kann auf der Clientseite (oder auf der Anwendungspräsentationsebene) angewendet werden, beispielsweise Browser-Caching oder App-Caching (oder Offline-Modus). Die meisten, wenn nicht alle modernen Browser werden mit einer Implementierung eines HTTP-Cache ausgeliefert.

Möglicherweise haben Sie beim Zugriff auf eine Webanwendung den beliebten Satz „Leeren Sie Ihren Cache“ gehört, damit Sie die neuesten Daten oder Inhalte einer Website oder Anwendung sehen können, anstatt dass der Browser eine alte Kopie von verwendet die lokal gespeicherten Inhalte.

Ein weiteres Beispiel für clientseitiges Caching ist das DNS-Caching, das auf der Ebene des Betriebssystems (OS) erfolgt. Dabei handelt es sich um eine vorübergehende Speicherung von Informationen über frühere DNS-Suchvorgänge durch das Betriebssystem oder den Webbrowser.

Caching kann auch auf Netzwerkebene implementiert werden, entweder in einem LAN oder WAN über Proxys. Ein häufiges Beispiel für diese Art von Caching sind CDNs (Content Delivery Networks), bei denen es sich um weltweit verteilte Netzwerke von Web-Proxy-Servern handelt.

Drittens können Sie Caching auch auf dem/den Ursprungs- oder Backend-Server(n) implementieren. Es gibt verschiedene Formen des Cachings auf Serverebene, dazu gehören:

  • Webserver-Caching (zum Zwischenspeichern von Bildern, Dokumenten, Skripten usw.).
  • Anwendungs-Caching oder Speicherung (wird beim Lesen von Dateien von der Festplatte, bei Daten von anderen Diensten oder Prozessen oder beim Anfordern von Daten von einer API usw. verwendet).
  • Datenbank-Caching (um speicherinternen Zugriff auf häufig verwendete Daten wie angeforderte Datenbankzeilen, Abfrageergebnisse und andere Vorgänge bereitzustellen).

Beachten Sie, dass Cache-Daten in jedem Speichersystem gespeichert werden können, einschließlich einer Datenbank, einer Datei, einem Systemspeicher usw., es sich jedoch um ein schnelleres Medium als die primäre Quelle handeln sollte. In dieser Hinsicht ist In-Memory-Caching die effektivste und am häufigsten verwendete Form des Cachings.

Warum Caching verwenden?

Caching bietet zahlreiche Vorteile, darunter die folgenden:

  • Auf Datenbankebene verbessert es die Leseleistung für zwischengespeicherte Daten auf Mikrosekunden. Sie können auch einen Write-Back-Cache verwenden, um die Schreibleistung zu verbessern, indem Daten in den Arbeitsspeicher und später in bestimmten Intervallen auf die Festplatte oder den Hauptspeicher geschrieben werden. Der Aspekt der Datenintegrität kann jedoch möglicherweise katastrophale Auswirkungen haben. Zum Beispiel, wenn das System abstürzt, kurz bevor Daten in den Hauptspeicher übertragen werden.
  • Auf Anwendungsebene kann ein Cache häufig gelesene Daten innerhalb des Anwendungsprozesses selbst speichern und so die Suchzeit für Daten von Sekunden auf Mikrosekunden reduzieren, insbesondere über das Netzwerk.
  • Unter Berücksichtigung der gesamten Anwendungs- und Serverleistung trägt Caching dazu bei, Ihre Serverlast, Latenz und Netzwerkbandbreite zu reduzieren, während zwischengespeicherte Daten an Clients bereitgestellt werden, wodurch die Reaktionszeit und die Bereitstellungsgeschwindigkeit an Clients verbessert werden.
  • Caching ermöglicht auch die Verfügbarkeit von Inhalten, insbesondere über CDNs, und viele weitere Vorteile.

In diesem Artikel besprechen wir einige der besten Open-Source-Tools (Anwendungs-/Datenbank-Caching und Caching-Proxy-Server) für die serverseitige Implementierung Caching unter Linux.

1. Redis

Redis (vollständig REmote DIctionary Server) ist ein kostenloses, quelloffenes, schnelles, leistungsstarkes und flexibles verteiltes In-Memory-Computing-System, das von den meisten, wenn nicht allen Programmiersprachen verwendet werden kann.

Es handelt sich um einen In-Memory-Datenstrukturspeicher, der als Caching-Engine, In-Memory-Persistent-On-Disk-Datenbank und Nachrichtenbroker fungiert. Obwohl Redis unter Linux (der empfohlenen Plattform für die Bereitstellung) und OS

Redis unterstützt zahlreiche Datenstrukturen wie Strings, Hashes, Listen, Mengen, sortierte Mengen, Bitmaps, Streams und mehr. Dadurch können Programmierer eine bestimmte Datenstruktur zur Lösung eines bestimmten Problems verwenden. Es unterstützt automatische Vorgänge an seiner Datenstruktur, z. B. das Anhängen an eine Zeichenfolge, das Verschieben von Elementen in eine Liste, das Erhöhen des Werts eines Hashs, das Berechnen von Mengenschnittpunkten und mehr.

Zu den Hauptfunktionen gehören die Redis-Master-Slave-Replikation (die standardmäßig asynchron ist), Hochverfügbarkeit und automatisches Failover mit Redis Sentinel, Redis-Cluster (Sie können horizontal skalieren, indem Sie weitere Clusterknoten hinzufügen) und Datenpartitionierung (Verteilen von Daten auf mehrere Redis). Instanzen). Es bietet außerdem Unterstützung für Transaktionen, Lua-Scripting, eine Reihe von Persistenzoptionen und Verschlüsselung der Client-Server-Kommunikation.

Als In-Memory-, aber persistente On-Disk-Datenbank bietet Redis die beste Leistung, wenn es am besten mit einem In-Memory-Datensatz funktioniert. Sie können es jedoch mit einer On-Disk-Datenbank wie MySQL, PostgreSQL und vielen anderen verwenden. Sie können beispielsweise sehr schreibintensive kleine Datenmengen in Redis übernehmen und andere Datenblöcke in einer Datenbank auf der Festplatte belassen.

Redis unterstützt die Sicherheit auf viele Arten: Zum einen durch die Verwendung einer „Protected-Mode“-Funktion, um Redis-Instanzen vor dem Zugriff von externen Netzwerken zu schützen. Es unterstützt außerdem die Client-Server-Authentifizierung (wobei ein Kennwort auf dem Server konfiguriert und im Client bereitgestellt wird) und TLS auf allen Kommunikationskanälen wie Client-Verbindungen, Replikationslinks, dem Redis-Cluster-Busprotokoll und mehr.

Redis verfügt über sehr viele Anwendungsfälle, darunter Datenbank-Caching, Ganzseiten-Caching, Verwaltung von Benutzersitzungsdaten, Speicherung von API-Antworten, Publish/Subscribe-Nachrichtensystem, Nachrichtenwarteschlange und mehr. Diese können in Spielen, Social-Networking-Anwendungen, RSS-Feeds, Echtzeit-Datenanalysen, Benutzerempfehlungen usw. angewendet werden.

2. Zwischengespeichert

Memcached ist ein kostenloses und quelloffenes, einfaches, aber leistungsstarkes, verteiltes Speicherobjekt-Caching-System. Dabei handelt es sich um einen In-Memory-Schlüsselwertspeicher für kleine Datenblöcke, beispielsweise Ergebnisse von Datenbankaufrufen, API-Aufrufen oder Seitenrendering. Es läuft auf Unix-ähnlichen Betriebssystemen wie Linux und OS X sowie auf Microsoft Windows.

Da es sich um ein Entwicklertool handelt, ist es dazu gedacht, die Geschwindigkeit dynamischer Webanwendungen zu steigern, indem es Inhalte zwischenspeichert (standardmäßig ein Least Recent Used (LRU)-Cache) und so die Geschwindigkeit reduziert Belastung der Datenbank auf der Festplatte – sie fungiert als Kurzzeitspeicher für Anwendungen. Es bietet eine API für die gängigsten Programmiersprachen.

Memcached unterstützt Zeichenfolgen als einzigen Datentyp. Es verfügt über eine Client-Server-Architektur, bei der die Hälfte der Logik auf der Clientseite und die andere Hälfte auf der Serverseite erfolgt. Wichtig ist, dass Clients wissen, wie sie auswählen können, auf welchen Server sie für ein Element schreiben oder von welchem sie lesen möchten. Außerdem weiß ein Client sehr gut, was zu tun ist, falls er keine Verbindung zu einem Server herstellen kann.

Obwohl es sich um ein verteiltes Caching-System handelt und somit Clustering unterstützt, sind die Memcached-Server voneinander getrennt (d. h. sie wissen nichts voneinander). Dies bedeutet, dass es keine Replikationsunterstützung wie in Redis gibt. Sie wissen auch, wie man Elemente speichert und abruft und verwaltet, wann Speicher gelöscht oder wiederverwendet wird. Sie können den verfügbaren Speicher erhöhen, indem Sie weitere Server hinzufügen.

Es unterstützt Authentifizierung und Verschlüsselung über TLS ab Memcached 1.5.13, diese Funktion befindet sich jedoch noch in der experimentellen Phase.

3. Apache Ignite

Apache Ignite ist außerdem ein kostenloses und quelloffenes, horizontal skalierbares verteiltes In-Memory-Schlüsselwertspeicher-, Cache- und Multimodell-Datenbanksystem, das leistungsstarke Verarbeitungs-APIs für die Berechnung verteilter Daten bereitstellt. Es handelt sich außerdem um ein In-Memory-Datengrid, das entweder im Speicher oder mit nativer Ignite-Persistenz verwendet werden kann. Es läuft auf UNIX-ähnlichen Systemen wie Linux und auch Windows.

Es bietet mehrstufigen Speicher, vollständige SQL-Unterstützung und ACID-Transaktionen (Atomicity, Consistency, Isolation, Durability) (unterstützt nur auf Schlüsselwert-API-Ebene) über mehrere Clusterknoten hinweg, lokalisierte Verarbeitung, und maschinelles Lernen. Es unterstützt die automatische Integration mit allen Datenbanken von Drittanbietern, einschließlich aller RDBMS (wie MySQL, PostgreSQL, Oracle Database usw.) oder NoSQL-Speichern.

Es ist wichtig zu beachten, dass Ignite zwar als SQL-Datenspeicher funktioniert, aber keine vollständige SQL-Datenbank ist. Im Vergleich zu herkömmlichen Datenbanken werden Einschränkungen und Indizes deutlich behandelt. Es unterstützt primäre und sekundäre Indizes, aber nur die primären Indizes werden zur Durchsetzung der Eindeutigkeit verwendet. Außerdem werden Fremdschlüsseleinschränkungen nicht unterstützt.

Ignite unterstützt auch die Sicherheit, indem es Ihnen die Aktivierung der Authentifizierung auf dem Server und die Bereitstellung von Benutzeranmeldeinformationen für Clients ermöglicht. Es gibt auch Unterstützung für die SSL-Socket-Kommunikation, um eine sichere Verbindung zwischen allen Ignite-Knoten bereitzustellen.

Ignite bietet viele Anwendungsfälle, darunter Caching-Systeme, Beschleunigung der Systemauslastung, Echtzeit-Datenverarbeitung und Analysen. Es kann auch als graphzentrierte Plattform verwendet werden.

4. Couchbase-Server

Couchbase Server ist außerdem eine verteilte, dokumentenorientierte NoSQL-Engagement-Datenbank mit offenem Quellcode, die Daten als Elemente in einem Schlüsselwertformat speichert. Es funktioniert unter Linux und anderen Betriebssystemen wie Windows und Mac OS

Zu seinen bemerkenswerten Funktionen gehören ein schneller Schlüsselwertspeicher mit verwaltetem Cache, speziell entwickelte Indexer, eine leistungsstarke Abfrage-Engine, eine Scale-out-Architektur (mehrdimensionale Skalierung), Big Data- und SQL-Integration, Full-Stack-Sicherheit und hohe Verfügbarkeit.

Couchbase Server verfügt über native Cluster-Unterstützung für mehrere Instanzen, wobei ein Cluster-Manager-Tool alle Knotenaktivitäten koordiniert und den Clients einfach eine Cluster-weite Schnittstelle bereitstellt. Wichtig ist, dass Sie Knoten nach Bedarf hinzufügen, entfernen oder ersetzen können, ohne dass es zu Ausfallzeiten kommt. Es unterstützt auch die Datenreplikation über Knoten eines Clusters hinweg sowie die selektive Datenreplikation über Rechenzentren hinweg.

Es implementiert Sicherheit durch TLS unter Verwendung dedizierter Couchbase-Server-Ports, verschiedener Authentifizierungsmechanismen (unter Verwendung von Anmeldeinformationen oder Zertifikaten), rollenbasierter Zugriffskontrolle (zur Überprüfung jedes authentifizierten Benutzers auf systemdefinierte Rollen, die ihm zugewiesen sind), Überwachung, Protokollen und Sitzungen .

Zu den Anwendungsfällen gehören eine einheitliche Programmierschnittstelle, Volltextsuche, parallele Abfrageverarbeitung, Dokumentenverwaltung, Indizierung und vieles mehr. Es wurde speziell für die Bereitstellung einer Datenverwaltung mit geringer Latenz für umfangreiche interaktive Web-, Mobil- und IoT-Anwendungen entwickelt.

5. Hazelcast IMDG

Hazelcast IMDG (In-Memory Data Grid) ist eine Open-Source-, leichte, schnelle und erweiterbare In-Memory-Data-Grid-Middleware, die elastisch skalierbares, verteiltes In-Memory-Computing ermöglicht. Hazelcast IMDG läuft auch auf Linux, Windows, Mac OS X und jeder anderen Plattform, auf der Java installiert ist. Es unterstützt eine Vielzahl flexibler und sprachnativer Datenstrukturen wie Map, Set, List, MultiMap, RingBuffer und HyperLogLog.

Hazelcast ist Peer-to-Peer und unterstützt einfache Skalierbarkeit, Cluster-Setup (mit Optionen zum Sammeln von Statistiken, Überwachen über das JMX-Protokoll und Verwalten des Clusters mit nützlichen Dienstprogrammen), verteilte Datenstrukturen und Ereignisse sowie Datenportionierung , und Transaktionen. Es ist außerdem redundant, da es die Sicherung jedes Dateneintrags auf mehreren Mitgliedern speichert. Um Ihren Cluster zu skalieren, starten Sie einfach eine andere Instanz. Daten und Backups werden automatisch und gleichmäßig ausgeglichen.

Es bietet eine Sammlung nützlicher APIs für den Zugriff auf die CPUs in Ihrem Cluster für maximale Verarbeitungsgeschwindigkeit. Es bietet außerdem verteilte Implementierungen einer großen Anzahl entwicklerfreundlicher Schnittstellen von Java wie Map, Queue, ExecutorService, Lock und JCache.

Zu seinen Sicherheitsfunktionen gehören Cluster-Mitglieder und Client-Authentifizierung sowie Zugriffskontrollprüfungen für Client-Vorgänge über die JAAS-basierten Sicherheitsfunktionen. Es ermöglicht außerdem das Abfangen von Socket-Verbindungen und von den Clients ausgeführten Remote-Vorgängen, die Verschlüsselung der Kommunikation auf Socket-Ebene zwischen den Cluster-Mitgliedern und die Aktivierung der SSL/TLS-Socket-Kommunikation. Laut offizieller Dokumentation werden die meisten dieser Sicherheitsfunktionen jedoch in der Enterprise-Version angeboten.

Der beliebteste Anwendungsfall ist verteiltes In-Memory-Caching und Datenspeicherung. Es kann aber auch für Web-Session-Clustering, NoSQL-Ersatz, Parallelverarbeitung, einfaches Messaging und vieles mehr eingesetzt werden.

6. McRouter

Mrouter ist ein kostenloser und quelloffener Memcached-Protokoll-Router zur Skalierung von Memcached-Bereitstellungen, der von Facebook entwickelt und verwaltet wird. Es verfügt über das Memcached ASCII-Protokoll, flexibles Routing, Multi-Cluster-Unterstützung, mehrstufige Caches, Verbindungs-Pooling, mehrere Hashing-Schemata, Präfix-Routing, replizierte Pools, Produktions-Traffic-Shadowing, Online-Neukonfiguration und Zielzustandsüberwachung/automatisches Failover.

Darüber hinaus unterstützt es das Aufwärmen des kalten Caches, umfassende Statistiken und Debug-Befehle, eine zuverlässige Dienstqualität zum Löschen von Streams, große Werte und Broadcast-Vorgänge und verfügt über IPv6- und SSL-Unterstützung.

Es wird auf Facebook und Instagram als Kernkomponente der Cache-Infrastruktur verwendet, um in Spitzenzeiten fast 5 Milliarden Anfragen pro Sekunde zu verarbeiten.

7. Lack-Cache

Varnish Cache ist ein flexibler, moderner und vielseitiger Open-Source-Webanwendungsbeschleuniger, der zwischen Web-Clients und einem Ursprungsserver sitzt. Es läuft auf allen modernen Linux-, FreeBSD- und Solaris-Plattformen (nur x86). Es handelt sich um eine hervorragende Caching-Engine und einen Inhaltsbeschleuniger, den Sie vor einem Webserver wie NGINX, Apache und vielen anderen bereitstellen können, um den Standard-HTTP-Port abzuhören, Client-Anfragen zu empfangen und an den Webserver weiterzuleiten und das Web bereitzustellen Antwort des Servers an den Client.

Varnish Cache fungiert als Vermittler zwischen Clients und den Ursprungsservern und bietet mehrere Vorteile. Das Element besteht darin, Webinhalte im Speicher zwischenzuspeichern, um die Belastung Ihres Webservers zu verringern und die Bereitstellungsgeschwindigkeit an Clients zu verbessern.

Nachdem er eine HTTP-Anfrage von einem Client erhalten hat, leitet er diese an den Backend-Webserver weiter. Sobald der Webserver antwortet, speichert Varnish den Inhalt im Speicher und übermittelt die Antwort an den Client. Wenn der Client denselben Inhalt anfordert, stellt Varnish ihn aus der Cache-steigernden Anwendungsantwort bereit. Wenn Inhalte aus dem Cache nicht bereitgestellt werden können, wird die Anfrage an das Backend weitergeleitet und die Antwort zwischengespeichert und an den Client übermittelt.

Varnish verfügt über VCL (Varnish Configuration Language – eine flexible domänenspezifische Sprache), mit der die Art und Weise konfiguriert wird, wie Anfragen verarbeitet werden, und mehr, Varnish Module (VMODS), die Erweiterungen für Varnish Cache sind.

Aus Sicherheitsgründen unterstützt Varnish Cache Protokollierung, Anforderungsprüfung, Drosselung, Authentifizierung und Autorisierung über VMODS, es fehlt jedoch die native Unterstützung für SSL/TLS. Sie können HTTPS für Varnish Cache mithilfe eines SSL/TLS-Proxys wie Hitch oder NGINX aktivieren.

Sie können Varnish Cache auch als Webanwendungs-Firewall, Abwehr von DDoS-Angriffen, Hotlinking-Schutz, Lastausgleicher, Integrationspunkt, Single-Sign-On-Gateway, Mechanismus für Authentifizierungs- und Autorisierungsrichtlinien, schnelle Lösung für instabile Backends und HTTP-Anforderungsrouter verwenden.

8. Squid-Caching-Proxy

Eine weitere kostenlose und quelloffene, herausragende und weit verbreitete Proxy- und Caching-Lösung für Linux ist Squid. Dabei handelt es sich um eine funktionsreiche Web-Proxy-Cache-Server-Software, die Proxy- und Cache-Dienste für gängige Netzwerkprotokolle wie HTTP, HTTPS und FTP bereitstellt. Es läuft auch auf anderen UNIX-Plattformen und Windows.

Genau wie Varnish Cache empfängt es Anfragen von Clients und leitet sie an bestimmte Backend-Server weiter. Wenn der Backend-Server antwortet, speichert er eine Kopie des Inhalts in einem Cache und übergibt sie an den Client. Zukünftige Anfragen für denselben Inhalt werden aus dem Cache bedient, was zu einer schnelleren Bereitstellung von Inhalten an den Client führt. Dadurch wird der Datenfluss zwischen Client und Server optimiert, um die Leistung zu verbessern, und häufig verwendete Inhalte werden zwischengespeichert, um den Netzwerkverkehr zu reduzieren und Bandbreite zu sparen.

Squid verfügt über Funktionen wie die Verteilung der Last über miteinander kommunizierende Hierarchien von Proxy-Servern, die Erstellung von Daten zu Webnutzungsmustern (z. B. Statistiken über die am häufigsten besuchten Websites) und die Möglichkeit, die weitergeleiteten Nachrichten zu analysieren, zu erfassen, zu blockieren, zu ersetzen oder zu ändern.

Es unterstützt auch Sicherheitsfunktionen wie umfassende Zugriffskontrolle, Autorisierung und Authentifizierung, SSL/TLS-Unterstützung und Aktivitätsprotokollierung.

9. NGINX

NGINX (ausgesprochen als Engine-X) ist eine Open-Source-, leistungsstarke, voll funktionsfähige und sehr beliebte konsolidierte Lösung für den Aufbau einer Web-Infrastruktur. Es handelt sich um einen HTTP-Server, einen Reverse-Proxy-Server, einen Mail-Proxy-Server und einen generischen TCP/UDP-Proxy-Server.

NGINX bietet grundlegende Caching-Funktionen, bei denen zwischengespeicherte Inhalte in einem dauerhaften Cache auf der Festplatte gespeichert werden. Das Faszinierende an der Inhaltszwischenspeicherung in NGINX ist, dass sie so konfiguriert werden kann, dass veraltete Inhalte aus ihrem Cache bereitgestellt werden, wenn keine neuen Inhalte von den Ursprungsservern abgerufen werden können.

NGINX bietet eine Vielzahl von Sicherheitsfunktionen zum Schutz Ihrer Websysteme, darunter SSL-Terminierung, Zugriffsbeschränkung mit HTTP-Basisauthentifizierung, Authentifizierung basierend auf dem Unteranforderungsergebnis, JWT-Authentifizierung, Zugriffsbeschränkung auf Proxy-HTTP-Ressourcen, Zugriffsbeschränkung nach geografischem Standort, und vieles mehr.

Es wird üblicherweise als Reverse-Proxy, Load Balancer, SSL-Terminator/Sicherheits-Gateway, Anwendungsbeschleuniger/Inhaltscache und API-Gateway in einem Anwendungsstapel bereitgestellt. Es wird auch zum Streamen von Medien verwendet.

10. Apache-Verkehrsserver

Zu guter Letzt haben wir Apache Traffic Server, einen Open-Source-, schnellen, skalierbaren und erweiterbaren Caching-Proxyserver mit Unterstützung für HTTP/1.1 und HTTP/2.0. Es wurde entwickelt, um die Netzwerkeffizienz und -leistung zu verbessern, indem häufig aufgerufene Inhalte am Rande eines Netzwerks zwischengespeichert werden, für Unternehmen, ISPs (Internet Server Providers), Backbone-Anbieter und mehr.

Es unterstützt sowohl Forward- als auch Reverse-Proxying von HTTP/HTTPS-Verkehr. Es kann auch so konfiguriert werden, dass es in einem oder beiden Modi gleichzeitig läuft. Es verfügt über persistentes Caching und Plugin-APIs. Unterstützung für ICP (Internet Cache Protocol), ESI (Edge Side Includes); Keep-ALive und mehr.

Im Hinblick auf die Sicherheit unterstützt Traffic Server die Steuerung des Client-Zugriffs, indem er Ihnen die Konfiguration von Clients ermöglicht, die den Proxy-Cache verwenden dürfen, sowie die SSL-Terminierung sowohl für Verbindungen zwischen Clients und sich selbst als auch zwischen ihm und dem Ursprungsserver. Es unterstützt außerdem Authentifizierung und grundlegende Autorisierung über ein Plugin, Protokollierung (jeder empfangenen Anfrage und jedes erkannten Fehlers) und Überwachung.

Traffic Server kann als Web-Proxy-Cache, Forward-Proxy, Reverse-Proxy, transparenter Proxy, Load Balancer oder in einer Cache-Hierarchie verwendet werden.

Abschließende Bemerkungen

Caching ist eine der vorteilhaftesten und am längsten etablierten Technologien zur Bereitstellung von Webinhalten, die in erster Linie darauf ausgelegt ist, die Geschwindigkeit von Websites oder Anwendungen zu erhöhen. Es hilft, Ihre Serverlast, Latenz und Netzwerkbandbreite zu reduzieren, da zwischengespeicherte Daten an Clients bereitgestellt werden, wodurch die Reaktionszeit der Anwendung und die Bereitstellungsgeschwindigkeit an Clients verbessert werden.

In diesem Artikel haben wir die besten Open-Source-Caching-Tools für die Verwendung auf Linux-Systemen besprochen. Wenn Sie andere Open-Source-Caching-Tools kennen, die hier nicht aufgeführt sind, teilen Sie uns diese bitte über das unten stehende Feedback-Formular mit. Sie können uns auch Ihre Meinung zu diesem Artikel mitteilen.