Ich schreibe einen Dienst, der HTTP-Umleitungen durchführt. Z.B
GET /key/0CC175B9C0F1B6A831C399E269772661 HTTP/1.0
Antwort
HTTP/1.0 301
Location: http://some-url/92EB5FFEE6AE2FEC3AD71C777531578F
Dies wird durch einen Schlüsselwertspeicher unterstützt und einige Millionen Artikel speichern.
Natürlich ist der Serverteil einfach zu implementieren, aber um die Anzahl der laufenden Dienste zu reduzieren, suche ich nach einem Schlüsselwertspeicher, der das Webserving für mich übernimmt.
Gibt es einen Schlüsselwertspeicher, der einen solchen öffentlich zugänglichen Webdienst unterstützt?
Firebase Remote Config könnte dies möglicherweise tun. https://firebase.google.com/docs/remote-config
Wenn mir diese Aufgabe übertragen würde, würde ich mich an Openresty wenden, Sie brauchen nicht einmal den ganzen Kram, nur den lua-nginx-redis-Treiber für das lua-nginx-Modul, unter Ubuntu/Debian wird durch die Installation von lua-nginx-redis das gesamte nginx installiert Teile, die Sie brauchen. Und natürlich brauchst du Redis. Dieses Tutorial ist sehr eng - es führt eine interne Umleitung basierend auf dem Benutzeragenten durch. Es ist nicht schwer, dies basierend auf dem Anforderungs-URI in eine externe Weiterleitung umzuwandeln.
Der Vorgang beginnt damit, local key = ngx.var.http_user_agent
dass Sie zu wechseln local key = ngx.var.http_user_agent
müssen local key = ngx.var.uri
. set $target '';
Sie können das Bit entfernen .
Am Ende statt ngx.var.target = host
nur tun return ngx.redirect($target)
. Sie können es entfernen, proxy_pass http://$target;
da es nie erreicht wird.
Einen Nachteil dieser Lösung zu nennen, fällt mir schwer. Openresty ist gut gepflegt und extrem schnell. Redis ist auch für seine hervorragende Qualität bekannt. Die Menge an Code / Konfiguration, die gewartet werden muss, ist wirklich so gering wie möglich.
CouchDB - (Schlüssel, Dokument) statt (Schlüssel, Wert), kann aber trotzdem tun, was Sie wollen, und unterstützt auch Master/Master-Replikationscluster für hohen Nutzen.
Izzy
Jo
Trailmax