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.

Cloudflare avec configuration redirection.io

L'utilisation de redirection.io avec Cloudflare Workers est assez simple :

  1. créez un compte redirection.io ;
  2. créez une organisation et un projet redirection.io. À cette étape, vous voudrez peut-être inviter vos collègues ;
  3. Liste des instances redirection.iorendez-vous sur l'écran "instances" de votre projet, et cliquez sur le bouton "Installer avec Cloudflare Workers"
  4. 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, un Account ID et une route de Worker (toutes ces informations sont fournies par Cloudflare)
  5. 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 :

Cache d'intégration Cloudflare

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 :

  1. 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.

  2. 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
    
  3. installez wrangler, le package officiel fourni par Cloudflare pour travailler avec les workers Cloudflare :

    npm install -g wrangler
    
  4. autorisez votre instance wrangler installée localement à pousser du code vers votre compte Cloudflare :

    wrangler login
    
  5. copiez le fichier wrangler.toml.dist vers wrangler.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 Cloudflare
    • name : c'est le nom que vous souhaitez utiliser pour ce worker sur la plateforme Cloudflare
    • route : 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" } (remplacez ZONE_ID comme trouvé sur votre tableau de bord Cloudflare)
    • workers_dev : définissez-le sur false (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 et main
    • vars.REDIRECTIONIO_ADD_HEADER_RULE_IDS : (par défaut : false). Définissez-le sur true pour ajouter un en-tête de réponse X-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.io
    • vars.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 instances
    • vars.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"
  6. 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"
    
  7. 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
Cette page a été mise à jour le 30 juin 2025
Vous ne trouvez pas votre réponse ?