Passke!

Dans une architecture classique d'hébergement web, il est fréquent d'avoir un cache (souvent Varnish) en front du site à héberger. Certain frameworks web permettent de gérer ce cache via des requêtes HTTP spécifiques (méthode BAN ou PURGE). Dans une architecture en partage de charge, ou il y aurait donc plusieurs serveurs de cache, la requête de purge ne serait prise en charge que par un seul des serveurs. Idéalement, il faudrait donc envoyer cette requête à chacun des serveurs de cache, et ce cas n'est pas forcément géré par les framework.

Le petit service http-multicaster permet d'envoyer une requête unique sur plusieurs backends. Il se contente de reprendre les caractéristiques essentielles de la requête originelle et d'envoyer une nouvelle requête à chacun des backends (caches) déclarés.

L'outil se configure entièrement via des variables d'environnement et le code source inclus un modèle de service systemd.

Une utilisation typique serait de le placer en tant que backend d'un load-balancer frontal pour toutes requêtes de type BAN ou PURGE.

SQLite est une base de données relationnelle légère, simple d'utilisation et très performante. On peut s'en servir pour faire de petits développements, mais également pour stocker, par exemple, des statistiques issues de logs d'accès HTTP.

Dans ce cas, il peut être intéressant de pouvoir géolocaliser les IP présentes dans ces logs. Plutôt que de le faire lors de l'insertion des logs en base de données, SQLite peut être étendue pour fournir de nouvelles fonctions.

Lire la suite...

HAProxy est un reverse proxy tcp et http(s), souvent utilisé en frontal d'applications web. Il est simple à installer, fiable, léger et performant.

Il permet de faire du partage de charge, des sticky sessions, du filtrage par IP, des ré-écritures (URL, entêtes,...), de présenter les certificats HTTPS et bien d'autres choses encore.

Cependant HAProxy n'a pas de fonction native de géolocalisation, mais lui ajouter cette possibilité n'est pas si compliqué comme nous allons le voir ici.

Lire la suite...