Passer au contenu

Comment utiliser un Application Load Balancer pour rediriger un domaine vers un autre ?

Lecture de 4 minute(s)
0

Je souhaite utiliser un Application Load Balancer pour rediriger le trafic d'un nom de domaine vers un autre.

Brève description

Pour utiliser un Application Load Balancer afin de rediriger un domaine vers un autre, créez une règle d'écouteur dans la console Amazon Elastic Compute Cloud (Amazon EC2). Les Application Load Balancers prennent en charge la redirection de domaine à domaine et de HTTP à HTTPS.

Il est recommandé d'utiliser un Application Load Balancer au lieu d'Amazon Simple Storage Service (Amazon S3) pour cette configuration.

Résolution

Remarque : Si des erreurs surviennent lorsque vous exécutez des commandes de l'interface de la ligne de commande AWS (AWS CLI), consultez la section Résoudre des erreurs liées à l’AWS CLI. Vérifiez également que vous utilisez bien la version la plus récente de l'interface.

Pour créer une règle d'écouteur dans la console Amazon EC2, procédez comme suit :

  1. Ouvrez la console Amazon EC2.
  2. Dans le volet de navigation, sous Équilibrage de charge, sélectionnez Équilibreurs de charge.
  3. Sélectionnez votre équilibreur de charge, puis sélectionnez l’onglet Écouteurs.
  4. Choisissez Afficher/modifier les règles pour l’écouteur d’équilibreur de charges que vous souhaitez utiliser.
  5. Cliquez sur l’icône Ajouter une règle (le signe plus).
  6. Choisissez Insérer une règle.
  7. Choisissez Ajouter une condition.
  8. Dans la section conditions (IF), choisissez Ajouter une condition. Ensuite, procédez comme ceci :
    Choisissez En-tête d’hôte, puis saisissez votre nom d’hôte (par exemple, exemple.com).
    Pour enregistrer, cliquez sur l’icône en forme de coche.
  9. Dans la section Actions (THEN), choisissez Ajouter une action. Ensuite, procédez comme ceci :
    Choisissez Rediriger vers.
    Spécifiez le protocole et le port.
    Remplacez l’hôte, le chemin et la requête d’origine par l’hôte, le chemin et la requête personnalisés.
    Dans le champ Hôte, saisissez exemple2.com.
    Dans les champs Chemin et Requête, conservez les valeurs par défaut (sauf si votre cas d’utilisation vous oblige à les modifier).
    Définissez le champ Réponse sur HTTP 301 « Déplacé définitivement » ou HTTP 302 « Trouvé ».
    Pour enregistrer, cliquez sur l’icône en forme de coche.
    La section THEN apparaît désormais comme suit :
    Rediriger vers https://exemple2.com:443/#{path}?#{query}
    Code de statut : HTTP_301
  10. Choisissez Enregistrer.

Remarque : Si les deux domaines pointent vers le même Application Load Balancer, effectuez l’une des tâches suivantes :

  • Obtenez des certificats distincts pour les deux domaines.
  • Utilisez un certificat SAN (Subject Alternative Name) pour valider les domaines.

Pour vérifier que la redirection fonctionne, procédez comme suit :

  1. Dans AWS CLI, utilisez la fonction curl suivante :

    curl
        -Iv https://example.com -L
    * Rebuilt URL to: https://example.com/
    . . .
    * Connected to example.com (1.2.3.4) port 443 (#0)
    <SSL handshake>
     > Host: example.com.   ------> Host name is example.com
     > User-Agent: curl/7.61.1
     >
         Accept: */*>
     * Connection state changed (MAX_CONCURRENT_STREAMS == 128)!
     < HTTP/2 301       ------> ALB does redirection
     < server: awselb/2.0
     < date: Fri, 06 Mar 2020 09:18:33 GMT
     < content-type: text/html
     < content-length: 150
    
     < location: https://example2.com:443/.   ----> redirected to "example2.com"
     <
     * Issue another request to this URL: 'https://example2.com:443/'. ------> Curl initiates another request that is to example2.com
     *   Trying 34.195.219.169...
    
     * TCP_NODELAY set
     <SSL handshake>
     > Host: example2.com.   ------> Host name has changed to example2.com
     > User-Agent: curl/7.61.1
     > Accept: */*
     >
     * Connection state changed (MAX_CONCURRENT_STREAMS == 128)!
     <
         HTTP/2 200 ----> We got a response
  2. Dans votre navigateur Internet, saisissez exemple.com et vérifiez que cela vous redirige vers exemple2.com.

Remarque : L’Application Load Balancer prend uniquement en charge les redirections 301 et 302. Ces redirections permettent au client de modifier la méthode HTTP de POST à GET dans les requêtes suivantes. Si vous avez besoin d’une redirection 307, celle-ci doit passer par l’application cible.

Informations complémentaires

Comment rediriger un domaine apex vers son sous-domaine ou tout autre domaine à l’aide d’Amazon S3 et d’Amazon Route 53 ?

Les Application Load Balancers prennent maintenant en charge plusieurs certificats TLS avec une sélection intelligente à l’aide de SNI

AWS OFFICIELA mis à jour il y a 6 mois