Les instructions ci-dessous ont été personnalisées pour votre projet "".
Personnalisez ces instructions pour le projet
Intégration Upsun
Cette page explique comment installer et configurer redirection.io sur les environnements d'hébergement Upsun (anciennement platform.sh) ou Symfony Cloud, afin de permettre à votre équipe SEO ou marketing de surveiller le trafic HTTP et de résoudre les problèmes de référencement de manière simple et flexible.
Qu'est-ce qu'Upsun ? Qu'est-ce que Symfony Cloud ?
Upsun est un PaaS : il fournit un environnement d'hébergement entièrement géré, conçu pour faciliter la mise en place d'une plateforme d'hébergement évolutive et maintenue. L'objectif de ces fournisseurs est d'offrir un moyen efficace de construire des plateformes Web riches en fonctionnalités, sans avoir besoin d'une conception d'infrastructure complexe ou d'opérations sysadmin répétitives.
En résumé, Symfony Cloud est une offre commerciale adaptée au framework Symfony, et construite sur la plateforme technique d'Upsun (anciennement platform.sh).
Note légale : bien que nous soyons convaincus qu'Upsun et Symfony Cloud font un excellent travail, ce guide n'implique pas que nous endossons ou conseillons leurs services. Ils possèdent leurs propres marques déposées, nous ne sommes pas affiliés, etc. etc.
Dans la suite de ce guide, nous fournirons des instructions pour Upsun (Flex). Si vous déployez votre projet sur Upsun Fixed (anciennement platform.sh), les principes sont les mêmes, seuls quelques termes changent. Vous pouvez lire le guide de migration sur le site d'Upsun.
Schéma d'installation
Upsun propose de nombreux services prêts à l'emploi (Elasticsearch, Memcached, Varnish, etc.) qui peuvent être activés dans un projet hébergé avec seulement quelques lignes de YAML. Malheureusement, Upsun ne fournit pas (encore) d'intégration native redirection.io (ce qui serait utile, n'est-ce pas ?), mais il est possible de le faire fonctionner de manière performante avec peu de configuration.
Un schéma vaut mille mots, voici donc une architecture d'application Upsun standard :

Et voici l'architecture qui sera utilisée avec l'agent redirection.io installé :

Dans cette configuration, les requêtes HTTP(s) entrantes sont routées vers l'agent redirection.io en mode reverse proxy, puis transmises au backend applicatif. Le reverse proxy redirectionio-agent est très performant et n'a pas d'impact significatif ou notable sur les performances globales, ce qui en fait une solution idéale pour corriger les problèmes de SEO à la volée, à la périphérie (edge) de votre infrastructure.
Si vous êtes pressé et souhaitez tester notre solution immédiatement, cliquez sur ce bouton pour utiliser un modèle de projet prédéfini :
Cela créera un projet Upsun de base avec redirection.io installé :

Configurer votre application
Tout d'abord, configurez votre application avec Upsun comme vous le feriez sans utiliser redirection.io. Ainsi, pour une application nommée app, voici l'architecture traditionnelle :
├─ .upsun
├─ config.yaml # définit les routes et les services requis par l'application
└─ app/ # contient le code de votre application
└─ index.html
Le fichier .upsun/config.yaml définit comment router le trafic au sein de l'application Upsun. Habituellement, vous voudrez envoyer tout le trafic vers votre application :
routes:
"https://{default}/":
type: upstream
upstream: "example-app:http"
"https://www.{default}/":
type: redirect
to: "https://{default}/"
Dans le fichier .upsun/config.yaml, vous pouvez également configurer l'application Upsun (nom, taille du disque, type d'application, etc.). Par exemple :
applications:
example-app:
type: golang:1.25
web:
locations:
"/":
root: "app"
passthru: "/index.html"
Configurer le redirectionio-agent
Comme le redirectionio-agent est un simple binaire sans dépendance externe (aucune base de données, etc. n'est requise), il vous suffit d'installer le binaire de l'agent en tant qu'application Upsun, comme expliqué dans le guide de documentation Applications multiples.
Tout d'abord, créez la configuration pour l'agent redirection.io :
└─ redirectionio
└─ agent.yaml # la configuration du redirectionio-agent
Dans redirectionio/agent.yaml, définissez les directives de configuration de redirectionio-agent comme expliqué dans notre documentation :
# /redirectionio/agent.yaml
instance:
name: "${PLATFORM_ENVIRONMENT}"
# Répertoire où les règles seront persistées
persist: "${PLATFORM_APP_DIR}/rules"
logging: true
# Exécuter l'agent en tant que reverse proxy
reverse_proxy:
listen:
- "tcp://0.0.0.0:${PORT}" # Point d'écoute
forward:
address: "app.internal" # Remote
agent:
project_key: "${REDIRECTIONIO_KEY}" # Clé de projet à utiliser
# Logs techniques optionnels de fonctionnement de l'agent
# log:
# -
# output: file
# format: text
# path: "${PLATFORM_APP_DIR}/log/agent.log"
Bien entendu, vous pouvez adapter la valeur pour instance_name (ici, elle est générée sur la base de la variable d'environnement PLATFORM_ENVIRONMENT).
Toutes les directives de configuration des proxies de l'agent peuvent être utilisées dans la section reverse_proxy.
Modifiez .upsun/config.yaml pour ajouter la configuration de l'application redirectionio-agent :
applications:
redirectionio-agent:
type: golang:1.15
disk: 128
hooks:
build: |
set -ex
curl -s -J -L "https://packages.redirection.io/dist/stable/3/any/redirectionio-agent-latest_any_amd64.tar.gz" | tar -C /app/ -xzpf -
relationships:
app: "example-app:http"
web:
upstream:
socket_family: tcp
protocol: http
commands:
start: |
set -ex
/app/redirection-agent/redirectionio-agent --config ./agent.yaml
locations:
"/":
allow: false
passthru: true
mounts:
# les règles seront sauvegardées localement dans ce dossier
'rules':
source: local
source_path: rules
# dossier de log redirection.io
'log':
source: local
source_path: log
# Votre configuration d'application originale
example-app:
type: golang:1.25
web:
locations:
"/":
root: "app"
passthru: "/index.html"
Il n'y a pas grand-chose à expliquer sur cette application :
- la directive
diskdéfinit la taille du disque attaché. Selon la taille de votre ensemble de règles et votre configuration de l'agent concernant la persistance des données, vous pourriez vouloir augmenter cette valeur ; - le
typede l'image utilisée estgolang, mais vous pouvez utiliser n'importe lequel des types disponibles. Il se trouve que l'image golang est la plus petite ; - le nœud
hooks.buildtélécharge la dernière version de l'agent redirection.io au moment de la construction ; - le nœud
relationships.apppermet de "lier" les deux applications Upsun. Changer ce nom nécessite également de changer le nœudreverse_proxy.forward.addressdans le fichieragent.yaml; - le nœud
web.command.startdéfinit comment démarrer le binaireredirectionio-agentavec la bonne configuration ; - la section
mountsdéfinit les chemins qui doivent être rendus accessibles en écriture pour l'agent redirection.io.
Le hook ci-dessus télécharge et installe la dernière version disponible du logiciel agent redirection.io. Si vous souhaitez exécuter une version fixe, vous pouvez bien sûr remplacer l'URL de téléchargement - utilisez simplement l'un des paquets disponibles dans notre dépôt.
Une fois que vous avez trouvé la clé de projet redirection.io (dans l'écran "instances" du manager, cliquez sur le bouton "Installer sur votre infrastructure"), ajoutez cette clé comme une variable de projet Upsun, ce qui aidera à garder cette clé secrète (et partagée au sein de votre équipe) :
$ upsun variable:create --name env:REDIRECTIONIO_KEY --sensitive true --value "mettez votre clé ici"
Dernière étape, modifiez le fichier .upsun/config.yaml pour demander à Upsun de router le trafic entrant vers l'application redirectionio-agent nouvellement créée au lieu de l'application app :
routes:
"https://{default}/":
type: upstream
upstream: "redirectionio-agent:http"
"https://www.{default}/":
type: redirect
to: "https://{default}/"
Bénéfices
Une fois les modifications effectuées, validez et poussez vers le remote upsun. Cela déclenchera un nouveau déploiement de votre projet :
$ git commit -m "use redirection.io"
$ git push
(des choses se passent)
Processing activity: John Doe pushed to Master
Found 1 new commit
Building application 'example-app' (runtime type: golang:1.25, tree: e7f1eab)
Generating runtime configuration.
Executing pre-flight checks...
Compressing application.
Beaming package to its final destination.
Building application 'redirectionio-agent' (runtime type: golang:1.25, tree: 2fd5612)
Generating runtime configuration.
Executing build hook...
W: + curl -s -J -L https://packages.redirection.io/dist/stable/3/any/redirectionio-agent-latest_any_amd64.tar.gz
W: + tar -C /app/ -xzpf -
Executing pre-flight checks...
Compressing application.
Beaming package to its final destination.
Redeploying environment master
Preparing deployment
Closing services example-app, router, and redirectionio-agent
Opening application example-app and its relationships
Opening environment
Environment configuration
example-app (type: golang:1.25, size: S, disk: 128)
redirectionio-agent (type: golang:1.25, size: S, disk: 128)
Environment routes
http://master-XXXXXXXXXX.platformsh.site/ redirects to https://master-XXXXXXXXXX.platformsh.site/
http://www.master-XXXXXXXXXX.platformsh.site/ redirects to https://www.master-XXXXXXXXXX.platformsh.site/
https://master-XXXXXXXXXX.platformsh.site/ is served by application `redirectionio-agent`
https://www.master-XXXXXXXXXX.platformsh.site/ redirects to https://master-XXXXXXXXXX.platformsh.site/
Envoyez une requête HTTP(s) à l'URL de votre application, et vous devriez voir du trafic loggué dans le manager redirection.io. Vous pouvez maintenant auditer votre trafic, créer des redirections et corriger les erreurs SEO en toute simplicité !
Étape suivante, apprenez à créer vos premières redirections !