Schneller Zugriff auf ein Hash-Set in Varnish

Schneller Zugriff auf ein Hash-Set in Varnish

Ich entwickle eine Varnish-Pipeline, die einen Mix aus öffentlichen und eingeschränkten Ressourcen bereitstellt.

Da der Zugriff auf öffentliche Ressourcen den größten Teil (> 99,9 %) des Datenverkehrs ausmacht, möchte ich Verknüpfungen erstellen, um die Validierung des Authentifizierungstokens und ähnliche Dinge für nicht eingeschränkte Ressourcen zu umgehen – oder noch besser, den AuthN/Z-Pfad nur dann zu nutzen, wenn sich die Ressource auf einer Art schwarzer Liste befindet.

Diese schwarze Liste kann (innerhalb der nächsten Jahre) bis zu 1 Million UUID4-Einträge enthalten. Eine solche Datei im Klartext belegt etwa 3,7 GB auf der Festplatte, sodass ein Computer mit ausreichend RAM-Kapazität in der Lage sein sollte, sie vollständig im Speicher zu behalten.

Meine Frage ist, wie man diese Blacklist implementiert, damit die Suchvorgänge sehr schnell sind. Ich dachte an ein „natives“ Hash-Set oder Memcached oder ähnliche Methoden. Memcached würde die Dinge sehr wahrscheinlich verlangsamen, wenn es verteilt wäre. Hat jemand einen ähnlichen Ansatz implementiert? Welche Tools stehen mir bei Varnish zur Verfügung?

Antwort1

In Varnish haben Sie keinen direkten Zugriff auf den Hash eines Objekts.

Sie könnten jedoch, wie Sie angegeben haben, eine Liste eingeschränkter Ressourcen in einem Schlüssel-Wert-Speicher speichern.

KVStore in Varnish Enterprise

Wenn wir über reine Ausführungsgeschwindigkeit sprechen,Varnish Enterprise verfügt über ein KVStore-Modul. DasKVStorewird im lokalen Speicher gehalten und kann bei einem Neustart aus einer Datei neu erstellt werden.

Varnish Enterprise ist nicht kostenlos und erfordert den Kauf eines Lizenzschlüssels. Wenn Sie eine niedrigere Einstiegshürde für die Enterprise-Version wünschen, gibt es offizielle Maschinenabbilder von Varnish Enterprise auf AWS, Azure, GCP und OCI. Sowohl für Ubuntu als auch für Red Hat. Sie zahlen keine Lizenz im Voraus und werden stundenweise abgerechnet. Siehehttps://aws.amazon.com/marketplace/pp/B07L7HVVMF?ref_=srh_res_product_titlefür ein Beispiel auf AWS

Das Redis VMOD

WennLackunternehmenist nichts für Sie, dann können Sie auchRedis VMOD von Carlos Abalde. Es ist kostenlos, Open Source und funktioniert recht gut.

Du kannst wieder laufenLUASkripte innerhalb von VCL, um komplexere Logik innerhalb von Redis auszuführen.

Wenn Sie befürchten, dass Redis Sie verlangsamt, können Sie die Anzahl der Verbindungen begrenzen und sogar sicherstellen, dass die Verbindung gemeinsam genutzt wird.

verwandte Informationen