Documentation utilisateur
  1. Qu'est-ce que redirection.io ?
  2. Guide de démarrage
  3. Que sont les organisations et les projets ?
  4. Inviter de nouveaux collaborateurs
  5. Compte utilisateur et préférences
  6. Utilisation des logs de trafic
  7. Créer une règle
  8. Référence des triggers et des marqueurs
  9. Référence des actions
  10. Comment importer ou exporter des règles de redirection en masse ?
  11. Gestion des instances
  12. Notifications du projet
  13. Segmentation des projets
  14. Combien ça coûte ?
  15. Puis-je utiliser redirection.io gratuitement ?
  16. À propos de nous

Documentation développeur
  1. TL;DR; Fast track
  2. Intégrations disponibles
  3. Module nginx
  4. Module Apache
  5. Intégration Upsun
  6. Intégration Clever Cloud
  7. Cloudflare Workers
  8. Intégration Fastly Compute@Edge
  9. Middleware Vercel
  10. Utiliser redirection.io avec Docker
  11. Est-ce rapide ?
  12. API publique

Documentation de l'agent
  1. Installation de l'agent
  2. Mise à jour de l'agent
  3. Options de l'agent en ligne de commande
  4. L'agent en tant que reverse proxy
  5. Référence de configuration de l'agent
  6. Configuration minimale
  7. Recevoir des requêtes
  8. Configuration du backend
  9. Virtualhosts
  10. Trusted proxies
  11. Base de données GeoIP
  12. Compression de la réponse
  13. Réglages de performance
  14. Logs d'accès
  15. Persister dans un bucket s3
  16. Monitoring de l'agent
  17. Utilisation de l'agent derrière un proxy HTTPS
  18. Exemples de configuration de l'agent redirection.io

Instances managées
  1. Que sont les instances managées ?
  2. Ajouter un domaine à votre projet
  3. Limites et quota des instances managées
  4. Questions fréquemment posées

Crawler
  1. Qu'est-ce que le crawler de redirection.io ?
  2. Démarrer un crawl
  3. Planifier un crawl
  4. Analyse des résultats d'un crawl
  5. La liste des crawls
  6. Crédits de crawl et tarifs
  7. Erreurs d'exploration
  8. Référence des métriques du crawler
  9. Référence des colonnes du crawler

Base de connaissances
  1. Créez vos premières redirections
  2. redirection.io : recettes de règles
  3. Mise en place d'un serveur de redirection sur Azure Cloud
  4. Données structurées et extraits enrichis
  5. Qu'est-ce qu'une redirection d'URL ?
  6. Pourquoi utiliser les redirections d'URL et comment les configurer

Versions legacy
  1. Référence de configuration de l'agent 1.x
  2. Référence de configuration de l'agent 2.x
  3. Intégrations dépréciées
  4. Intégration legacy de Cloudflare Workers

Changelogs
  1. redirectionio-agent
  2. libnginx-mod-redirectionio
  3. libapache2-mod-redirectionio

Module Apache

Nous proposons un module Apache qui expose redirection.io directement dans votre configuration Apache. L'utilisation de ce module est l'un des moyens conseillés pour intégrer redirection.io dans votre infrastructure.

Nous proposons également un module nginx pour les utilisateurs de nginx.

Comme alternative au déploiement utilisant le mode "reverse proxy", le module Apache redirection.io est un moyen rapide d'intégrer redirection.io dans votre infrastructure existante. Ce module dynamique se greffe simplement sur la boucle de requête et de réponse d'Apache et interroge de manière synchrone une API TCP de l'agent installé localement dès qu'une requête arrive. Lorsqu'une requête HTTP(s) entrante arrive, elle est traitée par le serveur web Apache, dans lequel le module natif de redirection.io s'insère de manière très rapide et performante :

Un virtualhost Apache qui utilise le module redirection.io pour observer le trafic

Veuillez noter que le module Apache nécessite qu'une instance de l'agent redirection.io soit disponible sur votre infrastructure, veuillez donc également installer l'agent redirection.io.

Installation du module

Distributions basées sur Debian et APT

Si vous utilisez une distribution Linux basée sur Debian ou APT et que vous souhaitez installer libapache2-mod-redirectionio, veuillez utiliser les commandes suivantes :

  1. Sélectionnez votre distribution

    Dans les étapes suivantes, veuillez utiliser les bonnes valeurs, en fonction de la version de votre distribution :
    Debian 13 (Trixie)
    repository source url: trixie main
    Debian 12 (Bookworm)
    repository source url: bookworm main
    Debian 11 (Bullseye)
    repository source url: bullseye main
    Ubuntu 24.04 LTS (Noble Numbat)
    repository source url: noble main
    Ubuntu 22.04 LTS (Jammy Jellyfish)
    repository source url: jammy main
  2. Installez le paquet apt-transport-https :

    sudo apt-get install apt-transport-https
    
  3. Importez la clé de notre dépôt apt :

    sudo mkdir -p /etc/apt/keyrings
    wget -qO- https://packages.redirection.io/gpg.key | sudo tee /etc/apt/keyrings/redirectionio-archive-keyring.asc
    
  4. Ajoutez l'URL de notre dépôt Debian :

    echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/redirectionio-archive-keyring.asc] https://packages.redirection.io/deb/stable/3 trixie main" | sudo tee -a /etc/apt/sources.list.d/packages_redirection_io_deb.list > /dev/null
  5. Mettez à jour le cache apt et installez le module Apache de redirection.io :

    sudo apt update && sudo apt install libapache2-mod-redirectionio
    
  6. Une fois le module installé, redémarrez le service apache2, par exemple :

    sudo systemctl restart apache2
    

C'est terminé ! redirection.io est installé et opérationnel. Vous pouvez poursuivre avec la configuration Apache de redirection.io et devriez voir des logs apparaître en quelques minutes 🎉

Distributions basées sur Red Hat et RPM

Notre module Apache est disponible pour Centos 7, Centos 8, RHEL 7, RHEL 8 jusqu'à la version 2.8.0. À partir de la version 2.9.0, seule la version Centos 9 stream est supportée. Cependant, vous pouvez toujours compiler le module Apache redirection.io pour votre distribution.

Si vous utilisez une distribution Linux de type Red Hat/CentOS et que vous souhaitez installer libapache2-mod-redirectionio, veuillez utiliser les commandes suivantes :

  1. Importez la clé de signature :

    sudo rpm --import https://packages.redirection.io/gpg.key
    
  2. Ajoutez notre dépôt RPM :

    sudo yum-config-manager --add-repo https://packages.redirection.io/rpm/stable/3/centos_9
  3. Installez le module Apache de redirection.io :

    sudo yum install libapache2-mod-redirectionio
  4. Une fois le module installé, redémarrez le service apache2, par exemple :

    sudo systemctl restart apache2
    

C'est terminé ! redirection.io est installé et opérationnel. Vous pouvez poursuivre avec la configuration Apache de redirection.io et devriez voir des logs apparaître en quelques minutes 🎉

Rôle Ansible

Un rôle Ansible redirectionio.apache_module est disponible. Vous pouvez l'installer via Ansible Galaxy :

ansible-galaxy install redirectionio.apache_module

Ce rôle installe le module Apache redirection.io et s'assure que vous utilisez les bons emplacements de dépôts selon votre système d'exploitation. Il supporte les distributions Linux basées sur Debian et RHEL.

Configuration

L'activation de redirection.io consiste uniquement à déclarer la clé du projet dans le VirtualHost ou le nœud de configuration dans lequel vous souhaitez activer redirection.io.

Vous pouvez trouver la clé du projet dans l'écran "instances" du manager (cliquez sur le bouton "Installer sur votre site web" > "Installer sur votre infrastructure").

Par exemple, dans un VirtualHost :

<VirtualHost *:8080>
  DocumentRoot /path/to/root
  ServerName example.org

  # ...

  RedirectionioProjectKey "SOME_PROJECT_KEY_HERE"

  # ...
</VirtualHost>

Ou même dans une Location :

<VirtualHost *:8080>
  DocumentRoot /path/to/root
  ServerName example.org

  # ...

  <LocationMatch "^/some-path">
    RedirectionioProjectKey "SOME_PROJECT_KEY_HERE"
  </LocationMatch>

  # ...
</VirtualHost>

La directive RedirectionioProjectKey peut être entourée de guillemets doubles ou non (ex., MA_CLE_DE_PROJET_ICI ou "MA_CLE_DE_PROJET_ICI").

Directives de configuration du module

Le paquet libapache2-mod-redirectionio active plusieurs directives de configuration, qui peuvent être utilisées partout où RedirectionioProjectKey est utilisé :

Redirectionio

  • Syntaxe : Redirectionio "on" | "off"
  • Défaut : Redirectionio "off"
  • Contexte : VirtualHost, Location, LocationMatch

Cette directive active ou désactive redirection.io pour les requêtes correspondant au contexte actuel. Par défaut, redirection.io est désactivé, mais il est automatiquement activé lorsque la directive RedirectionioProjectKey est définie dans un nœud de la configuration.

L'utilisation de Redirectionio "off" peut donc être utile pour désactiver redirection.io dans un emplacement particulier.

RedirectionioProjectKey

  • Syntaxe : RedirectionioProjectKey"une_cle"
  • Défaut : aucune
  • Contexte : VirtualHost, Location, LocationMatch

Définit la clé de projet redirection.io à utiliser pour les requêtes correspondant au contexte actuel. Lorsqu'elle est définie, cette directive active automatiquement la directive Redirectionio.

RedirectionioLogs

  • Syntaxe : RedirectionioLogs "on" | "off"
  • Défaut : RedirectionioLogs "on"
  • Contexte : VirtualHost, Location, LocationMatch

Cette directive active ou désactive la collecte des logs pour le contexte actuel (veuillez toutefois noter que les logs ne seront envoyés que si les directives Redirectionio et RedirectionioLogs sont toutes deux sur on. En d'autres termes, régler RedirectionioLogs sur on alors que Redirectionio est sur off ne collectera aucun log).

RedirectionioPass

  • Syntaxe : RedirectionioPass "tcp://ip:port" | "unix:///path"
  • Défaut : RedirectionioPass "tcp://127.0.0.1:10301"
  • Contexte : VirtualHost, Location, LocationMatch

Cette directive spécifie l'emplacement du redirectionio-agent que le module Apache doit utiliser pour le matching des requêtes. Dans une installation traditionnelle, l'agent est simplement disponible sur 127.0.0.1:10301. Si vous exposez l'agent via un fichier, la valeur de la directive RedirectionioPass peut, par exemple, être de la forme unix:///var/run/redirectionio.sock.

Cette directive permet également de définir des options de gestion du pool de connexions :

RedirectionioPass "tcp://127.0.0.1:10301" min_conns=1 keep_conns=10 max_conns=100 timeout=100

Tous les paramètres min_conns, keep_conns, max_conns et timeout sont facultatifs :

  • min_conns (défaut 1) : il s'agit du nombre minimal de connexions TCP établies en permanence entre le module Apache2 et l'agent redirection.io. Si ces connexions n'existent pas, elles sont créées, même si aucune requête HTTP n'est traitée par le serveur Apache2.
  • max_conns (défaut 100) : il s'agit du nombre maximal de connexions TCP pouvant être établies entre le module Apache2 et l'agent redirection.io à un instant donné. Si toutes les connexions sont actuellement utilisées, le module attendra pendant la durée du timeout, puis enregistrera une erreur et laissera passer la requête sans la traiter.
  • keep_conns (défaut 10) : il s'agit du nombre minimal de connexions TCP à maintenir actives une fois qu'elles ont été créées.
  • timeout (défaut 100) : il s'agit de la durée, en millisecondes, pendant laquelle le module Apache2 attendra une réponse de l'agent. L'agent redirection.io est très performant et, même avec des centaines de milliers de règles, devrait toujours envoyer une réponse bien plus rapidement que cette valeur de timeout (généralement en moins de 1ms), mais ce paramètre garantit que, même dans des contextes de très forte charge, l'appel à l'agent ne bloquera pas la requête trop longtemps.

Par exemple, avec min_conns=1 keep_conns=10 max_conns=100 timeout=50 :

  • 1 connexion est établie entre Apache2 et l'agent au démarrage d'Apache2 ;
  • Apache2 créera jusqu'à 100 connexions vers l'agent (bien sûr, il réutilise les connexions disponibles) ;
  • si de nombreuses connexions ont été créées et ne sont plus utiles, elles seront libérées, mais Apache2 maintiendra 10 connexions actives ;
  • Apache2 attendra au maximum 50 millisecondes pour une réponse de l'agent redirection.io.

RedirectionioRuleIdsHeader

  • Syntaxe : RedirectionioRuleIdsHeader "on" | "off"
  • Défaut : RedirectionioRuleIdsHeader "off"
  • Contexte : VirtualHost, Location, LocationMatch

Si ce paramètre est activé, un header de réponse nommé X-RedirectionIo-RuleIds sera ajouté à la réponse. Sa valeur contiendra la liste des identifiants de règles redirection.io appliquées à cette réponse, séparés par le caractère ;.

RedirectionioScheme

  • Syntaxe : RedirectionioScheme "http" | "https"
  • Défaut : aucun
  • Contexte : VirtualHost, Location, LocationMatch

Cette directive permet de forcer le schéma à utiliser lors du matching de la requête. Ceci est utile si vous avez défini des règles utilisant un déclencheur URL avec une valeur d'URL absolue (contenant un schéma, un nom de domaine, etc.), mais que vous souhaitez utiliser les mêmes règles dans un VirtualHost avec un autre schéma.

Imaginez, par exemple, un VirtualHost écoutant uniquement le trafic HTTPS, utilisant un projet dans lequel les règles sont définies avec le schéma http:// : les URL ne correspondraient jamais, car aucune règle n'utilise le schéma https://. Dans ce cas, régler la valeur de RedirectionioScheme sur http forcera le module à effectuer le matching avec ce schéma, et non le schéma réel de la requête.

RedirectionioSetHeader

  • Syntaxe : RedirectionioSetHeader X-Custom-Header-Name HeaderValue;
  • Défaut : aucun
  • Contexte : VirtualHost, Location, LocationMatch

Cette directive permet de transmettre la requête au module redirection.io en ajoutant un header de requête rempli avec une valeur donnée. La valeur passée au header peut être une variable Apache, par ex. :

RedirectionioSetHeader X-GeoIP-Country-Code $(GEOIP_COUNTRY_CODE);

Cela peut être utile pour transmettre des variables du contexte Apache à l'agent redirection.io, qui peuvent ensuite être utilisées dans les règles de redirection via le trigger de header de requête.

RedirectionioTrustedProxies

  • Syntaxe : RedirectionioTrustedProxies 127.0.0.1,172.18.0.0/24;
  • Défaut : aucun
  • Contexte : VirtualHost, Location, LocationMatch

Cette directive est utilisée par le module pour restreindre quels proxies sont de confiance avant d'évaluer les headers X-Forwarded-*. C'est particulièrement utile lors de l'utilisation du déclencheur par adresse IP, afin de garantir que l'adresse IP évaluée est valide et n'a pas été falsifiée.

La valeur à utiliser pour cette directive est une liste séparée par des virgules de toutes les adresses IP des proxies qui doivent être considérés comme de confiance (une notation CIDR peut être utilisée pour les sous-réseaux).

Le module Apache est open source et disponible sur notre compte GitHub.

Questions, réponses et dépannage

Y a-t-il des inconvénients à utiliser le module Apache au lieu du mode "reverse proxy" ?

Bien que cette approche soit intéressante - car elle implique peu de changements dans l'architecture de l'infrastructure et le flux de requêtes de votre pile - elle peut parfois s'avérer complexe à mettre en place :

  • premièrement, les modules Apache sont liés à des versions très spécifiques d'Apache. Nous distribuons des modules pré-compilés pour les versions d'Apache officiellement fournies par les distributions, mais nous ne pouvons pas distribuer notre module pour toutes les versions d'Apache existantes. En d'autres termes, les utilisateurs d'installations Apache personnalisées devront compiler le module Apache eux-mêmes.
  • le flux de gestion des requêtes Apache n'est pas un long fleuve tranquille 🙂 Autrement dit, selon les modules installés, des comportements inattendus peuvent apparaître, et il n'y a aucun moyen de garantir que notre module s'intégrera parfaitement à votre installation Apache. Par exemple, il peut y avoir des incompatibilités avec d'autres modules.
  • les modules Apache sont développés en langage C, ce qui ne garantit pas la sécurité mémoire. L'agent redirection.io lui-même, ainsi que la bibliothèque sous-jacente open source libredirectionio, sont des binaires basés sur Rust.
  • la mise à jour d'un module dynamique nécessite un redémarrage du serveur, ce qui n'est pas toujours souhaitable.
  • enfin et surtout, l'utilisation du module Apache redirection.io signifie que, pour chaque requête, un appel TCP synchrone est effectué du processus Apache vers l'agent redirection.io. Nous proposons plusieurs directives d'ajustement pour maintenir un pool de connexions, et cela fonctionnera parfaitement sur des sites web à trafic raisonnable, mais cela peut devenir un défi à configurer correctement dans des environnements très exigeants.

C'est pourquoi nous recommandons généralement de privilégier le mode reverse proxy. Cependant, le module Apache est un moyen parfaitement pratique, supporté et entièrement testé d'utiliser redirection.io si vous le souhaitez.

Le module loggue des erreurs 500 qui n'ont pas eu lieu

Le module Apache est conçu pour enregistrer le flux exact des requêtes et des réponses tel qu'il est géré en interne par le serveur Apache. Cela signifie que si le module enregistre une erreur 500, c'est parce que le serveur Apache a traité la requête en interne avec un code de réponse 500, même si le client n'a pas réellement reçu cette réponse 500.

Il peut y avoir plusieurs raisons à cela :

  • la plus courante est que la requête HTTP a été annulée par le client avant que le serveur Apache ne puisse envoyer la réponse, et que le serveur Apache a géré cela en interne comme une erreur 500 (par exemple, parce qu'un module FastCGI a renvoyé une erreur suite à l'interruption de la requête). Ces erreurs 500 sont également visibles dans les access logs.
  • ou alors, la réponse réelle envoyée au client a été modifiée par un autre module après que le module redirection.io a enregistré la requête.

Le module redirection.io enregistre le code de réponse tel qu'Apache lui-même l'enregistre. Dans certains cas, cela peut être perturbant de voir des erreurs 500 dans les logs de redirection.io, car elles peuvent polluer les logs et rendre plus difficile la recherche des erreurs réelles. Si vous souhaitez éviter cela, nous vous conseillons plutôt d'installer l'agent redirection.io en mode "reverse proxy", qui n'est pas affecté par ce problème.

Utiliser le module Apache avec une installation Apache2 non standard

Notre module Apache est l'un des moyens recommandés pour intégrer redirection.io dans les stacks Web. Nous distribuons notre module Apache pour de nombreuses distributions, ce qui devrait couvrir la plupart des cas de production. Cependant, il peut arriver que votre hébergeur ou votre solution de déploiement installe une version personnalisée d'Apache, dans des chemins non standard ou avec des dépendances incompatibles.

Cette section vous guidera à travers les étapes pour faire fonctionner notre module Apache avec votre installation Apache2, quelle que soit sa configuration.

Si vous maîtrisez Docker, ce processus de compilation est également disponible sous forme de Dockerfile sur notre compte GitHub.

Télécharger et compiler la bibliothèque libredirectionio

La bibliothèque libredirectionio est une bibliothèque Rust qui traite les redirections et le filtrage à partir des règles créées à l'aide de redirection.io. Cette bibliothèque est utilisée dans nos différents proxies, et spécifiquement dans le module Apache2.

  1. Installez les outils de compilation Rust :

    # Debian-based distribution
    apt install autoconf build-essential curl wget unzip
    curl https://sh.rustup.rs -sSf | sh -s -- --default-toolchain stable -y
    
    apt install cargo wget unzip
    
    # RedHat-based distribution
    yum install -y epel-release yum-utils curl
    yum -y groupinstall 'Development Tools'
    curl https://sh.rustup.rs -sSf | sh
    
  2. Récupérez les sources de la bibliothèque libredirectionio :

    cd /tmp
    wget -O libredirectionio-master.zip https://github.com/redirectionio/libredirectionio/archive/master.zip
    unzip libredirectionio-master.zip
    cd libredirectionio-master
    
  3. Et compilez la bibliothèque :

    autoreconf -i && \
    ./configure && \
    make clean && \
    make && \
    make install
    

Si la compilation réussit (cela peut être long), vous devriez obtenir une bibliothèque statique target/release/libredirectionio.so.

Télécharger et compiler les sources du module

Le module Apache de redirection.io est disponible en tant que projet Opensource sur notre compte GitHub.

  1. Tout d'abord, installez quelques outils et utilitaires de compilation :

    # Debian-based distribution
    apt install gawk
    
    # RedHat-based distribution
    yum install gcc gawk wget unzip
    
  2. Assurez-vous qu'apxs est installé sur votre système. apxs (également connu sous le nom de "APache eXtenSion tool") est un outil permettant de compiler et d'installer des modules d'extension pour le serveur Apache :

    which apxs
    

    Si cette commande ne retourne pas le chemin complet d'apxs, vous devez l'installer. Cela dépend de votre distribution, mais vous pouvez généralement obtenir apxs en utilisant l'une des commandes suivantes :

    # Debian-based distribution
    apt install apache2-dev
    
    # RedHat-based distribution
    yum install httpd-devel
    
    # Amazon Linux
    yum install httpd24-devel
    
  3. Téléchargez le module :

    cd /tmp
    wget -O libapache2-mod-redirectionio-master.zip https://github.com/redirectionio/libapache2-mod-redirectionio/archive/master.zip
    
  4. Ensuite, compilez le module :

    unzip libapache2-mod-redirectionio-master.zip
    cd libapache2-mod-redirectionio-master
    autoreconf -i
    ./configure
    make clean
    make
    sudo make install
    

Installer le module dans le bon chemin

L'installation du module devrait être assez directe dans la plupart des cas :

make install

Si cela fonctionne, vous êtes prêt, félicitations ! Cependant, cette étape peut échouer si votre installation d'Apache2 n'utilise pas les répertoires Apache standards de votre distribution. Dans ce cas, vous devez copier le module dans le dossier approprié.

  1. Tout d'abord, trouvez le dossier des modules. Cela peut être fait en inspectant la configuration d'Apache :

    /path/to/your/apache -V | grep SERVER_CONFIG_FILE
    # devrait afficher quelque chose comme : SERVER_CONFIG_FILE="/etc/apache-custom/httpd.conf"
    # ce qui signifie que le fichier de config est "/etc/apache-custom/httpd.conf"
    

    Utilisez cat pour afficher le contenu de ce fichier : vous devriez remarquer plusieurs directives LoadModule, par exemple LoadModule auth_basic_module lib/apache-custom/mod_auth_basic.so.

    Cela signifie que le chemin des modules se trouve dans /etc/apache-custom/lib/apache-custom/. Hourra 🎉

  2. Déplacez le module dans ce dossier :

    # modifiez les permissions du module
    chmod 644 ./src/mod_redirectionio.so
    
    # ensuite, copiez-le au bon endroit
    # (bien sûr, utilisez le chemin que vous avez trouvé ci-dessus)
    sudo mv ./src/mod_redirectionio.so /etc/apache-custom/lib/apache-custom/
    
  3. Chargez le module dans Apache - pour cela, ajoutez une directive LoadModule dans httpd.conf, par exemple :

    LoadModule redirectionio_module lib/apache-custom/mod_redirectionio.so
    

    Vous pouvez également ajouter cette ligne dans un fichier séparé pour garder une trace de vos propres modifications. La plupart du temps, le fichier de configuration principal d'Apache2 inclut d'autres fichiers (par exemple, IncludeOptional /etc/apache-custom/conf.d/*.conf) - n'hésitez donc pas à ajouter le vôtre !

  4. Redémarrez Apache, et c'est fini !

    sudo systemctl restart apache2.service
    

Vous pouvez vérifier que le module fonctionne parfaitement en terminant ses étapes de configuration dans le VirtualHost.

Cette page a été mise à jour le 16 avr. 2026
Vous ne trouvez pas votre réponse ?