Intégration Cloudflare Workers
Dans une configuration Cloudflare traditionnelle, Cloudflare agit comme un proxy http(s) et proxifie chaque requête vers votre application, masquant complètement votre pile. Vous pouvez cependant tirer parti des Cloudflare Workers pour faire plus avec Cloudflare, et exécuter directement redirection.io "en périphérie", sans même utiliser votre propre infrastructure.
L'utilisation de redirection.io avec Cloudflare Workers est assez simple :
- créez un compte redirection.io ;
- créez une organisation et un projet redirection.io. À cette étape, vous voudrez peut-être inviter vos collègues ;
rendez-vous sur l'écran "instances" de votre projet, et cliquez sur le bouton "Installer avec Cloudflare Workers"- Ceci ouvre un panneau latéral qui vous guidera à travers l'installation de redirection.io sur Cloudflare Workers. En substance, il vous sera demandé de créer un jeton API Cloudflare pour votre compte, de configurer un
Zone ID
, unAccount ID
et une route de Worker (toutes ces informations sont fournies par Cloudflare) - Vous êtes prêt :-)
Lorsque nous publions une mise à jour de notre agent, celle-ci est automatiquement déployée sur votre compte Cloudflare, de sorte que votre agent redirection.io sur Cloudflare Workers reste toujours à jour. Si vous ne souhaitez pas que nous mettions à jour le worker automatiquement, décochez cette option dans les paramètres de l'instance.
Mise en cache avec cloudflare workers
Cette fonctionnalité est disponible depuis la version 2.1.1 de l'intégration Cloudflare de redirection.io.
Lorsque vous utilisez Cloudflare Workers avec redirection.io, chaque requête HTTP entrante vers votre site web nécessite un appel à nos API, afin de vérifier si une ou plusieurs règles doivent être exécutées ou non. C'est normal et attendu. Cependant, dans certaines situations, vous voudrez peut-être éviter certains de ces appels. Par exemple, s'il y a de nombreuses requêtes équivalentes effectuées vers votre site web, cela peut être une excellente idée d'activer le cache de redirection dans la configuration de l'instance redirection.io de Cloudflare Workers :
Lorsque cette option est activée avec une valeur non nulle pour le paramètre Cache duration
, Cloudflare Workers mettra en cache la règle et l'exécutera lors des requêtes suivantes sans solliciter notre service pendant cette durée, exprimée en secondes. Les journaux, cependant, seront toujours enregistrés de manière asynchrone, sans aucun impact sur les performances de votre site web.
Nous vous conseillons de définir une valeur raisonnable pour la Cache duration
: plus elle est élevée, moins votre service subira de latence globale. Cependant, définir une valeur trop longue peut entraîner l'application d'une redirection même après que vous ayez modifié une règle. En fonction de vos exigences métier, les valeurs correctes pour la Cache duration
devraient varier de 60
à 3600
(ce qui signifie une durée de cache d'1 heure)
Déploiement manuel du worker cloudflare
Il existe plusieurs raisons pour lesquelles vous pourriez ne pas vouloir déployer le worker Cloudflare en utilisant le processus décrit ci-dessus, via l'écran "instances" du gestionnaire.
Par exemple, votre équipe de sécurité informatique pourrait être préoccupée par le fait que vous nous fournissiez un jeton Cloudflare ou la capacité de déployer une nouvelle version du worker redirection.io sur votre compte Cloudflare.
Vous pourriez également vouloir modifier certaines parties du worker pour appliquer un comportement personnalisé qui correspond à vos exigences métier. À ce jour, il n'est pas (facilement) possible d'exécuter plusieurs workers en chaîne sur le edge de Cloudflare, et le coût associé pourrait encore être un peu prohibitif.
La bonne nouvelle est que notre code et nos outils de worker Cloudflare sont open source et disponibles sur le compte Github de redirection.io.
Voici les étapes requises pour déployer manuellement votre propre version du worker, sans utiliser l'écran "instances" du gestionnaire :
-
installez la chaîne d'outils Rust dans votre environnement de développement, ex. :
apt install autoconf build-essential curl wget unzip curl https://sh.rustup.rs -sSf | sh -s -- --default-toolchain 1.85.0 -y
Assurez-vous d'utiliser la version stable actuelle.
-
clonez le code du worker Cloudflare (vous pouvez le forker vers votre propre compte, si vous devez apporter des modifications au code du worker) :
git clone https://github.com/redirectionio/cloudflare-worker cd cloudflare-worker
À cette étape, vous pourriez avoir besoin de basculer vers la dernière version stable disponible du worker, par exemple :
git checkout tags/2.9.2
-
installez wrangler, le package officiel fourni par Cloudflare pour travailler avec les workers Cloudflare :
npm install -g wrangler
-
autorisez votre instance wrangler installée localement à pousser du code vers votre compte Cloudflare :
wrangler login
-
copiez le fichier
wrangler.toml.dist
verswrangler.toml
, et modifiez les valeurs :account_id
: l'ID de compte Cloudflare, qui peut être trouvé en bas à droite du tableau de bord du projet Cloudflarename
: c'est le nom que vous souhaitez utiliser pour ce worker sur la plateforme Cloudflareroute
: c'est la route de votre site web pour laquelle vous souhaitez activer redirection.io. Vous pouvez consulter la documentation de Cloudflare sur les routes des Workers. En général, vous voudrez que la route ressemble à ceci :{ pattern = "*example.com/*", zone_id = "ZONE_ID" }
(remplacezZONE_ID
comme trouvé sur votre tableau de bord Cloudflare)workers_dev
: définissez-le surfalse
(valeur par défaut) pour éviter de publier le worker en tant que sous-domaine.workers.dev
- ne modifiez pas les valeurs de
compatibility_date
etmain
vars.REDIRECTIONIO_ADD_HEADER_RULE_IDS
: (par défaut :false
). Définissez-le surtrue
pour ajouter un en-tête de réponseX-RedirectionIo-RuleIds
contenant les identifiants des règles redirection.io exécutées, séparés par un;
vars.REDIRECTIONIO_INSTANCE_NAME
: tapez ici le nom de cette instance, tel qu'il devrait être affiché dans l'écran "instances" du gestionnaire redirection.iovars.REDIRECTIONIO_TIMEOUT
: (par défaut :5000
) cela permet de définir le délai d'attente maximal pour les appels API de redirection.io (en ms)vars.REDIRECTIONIO_VERSION
: (par défaut :redirection-io-cloudflare/dev
) vous ne devriez pas remplacer cette valeur, qui est utilisée pour personnaliser la version du worker telle qu'elle est affichée dans l'écran des instancesvars.REDIRECTIONIO_CACHE_TIME
: (par défaut :0
) la durée du délai d'expiration du cache - voir la section "Mise en cache avec cloudflare workers"
-
Ajoutez votre clé de projet redirection.io en tant que secret de worker :
wrangler secret put REDIRECTIONIO_TOKEN # collez la clé de projet qui se trouve dans l'écran "instances" du gestionnaire, sous "Configuration sur votre infrastructure"
-
En dernière étape, vous pouvez publier le worker sur votre projet Cloudflare :
wrangler deploy
Votre worker nouvellement créé devrait fonctionner après quelques secondes !
Vous pouvez essayer de compiler le worker sans le déployer réellement en utilisant cargo
directement. Dans ce cas, au lieu d'exécuter wrangler deploy
, invoquez directement cargo
:
cargo install
cargo build