Estoy escribiendo un servicio que realizará redireccionamientos HTTP. P.ej
GET /key/0CC175B9C0F1B6A831C399E269772661 HTTP/1.0
respuesta
HTTP/1.0 301
Location: http://some-url/92EB5FFEE6AE2FEC3AD71C777531578F
Esto estará respaldado por una tienda de clave-valor y almacenará unos pocos millones de artículos.
Por supuesto, la parte del servidor es simple de implementar, pero para reducir la cantidad de servicios en ejecución, estoy buscando un almacén de valores clave que se encargue del servicio web por mí.
¿Existe una tienda de clave-valor que sea un servicio web tan público?
Firebase Remote Config posiblemente podría hacer esto. https://firebase.google.com/docs/remote-config
Si me dieran esta tarea, recurriría a Openresty, ni siquiera necesita todo el shebang, solo el controlador lua-nginx-redis para lua-nginx-module, en Ubuntu/Debian, la instalación de lua-nginx-redis instalará todo el nginx piezas que necesita. Y, por supuesto, necesitará Redis. Este tutorial es extremadamente cercano: realiza una redirección interna basada en el agente de usuario. Convertir eso en una redirección externa basada en el URI de solicitud no es difícil.
Comienza el proceso con la local key = ngx.var.http_user_agent
necesidad de cambiar local key = ngx.var.http_user_agent
a local key = ngx.var.uri
. Puedes quitar la set $target '';
broca.
Al final en lugar de ngx.var.target = host
simplemente hacer return ngx.redirect($target)
. Puede eliminar proxy_pass http://$target;
ya que nunca se alcanzará.
Sería difícil nombrar una desventaja de esta solución. Openresty está bien mantenido y es extremadamente rápido. Redis también es conocido por ser de excelente calidad. La cantidad de código/configuración a mantener es realmente la menor posible.
CouchDB: (clave, documento) en lugar de (clave, valor), pero aún puede hacer lo que desee y también es compatible con el clúster de replicación maestro/maestro para un alto rendimiento.
izzy
José
trailmax