Configurer la redirection HTTP vers HTTPS

Cet exemple montre comment rediriger toutes les requêtes du port 80 vers le port 443.

En règle générale, pour rediriger le trafic HTTP vers HTTPS, vous devez suivre la procédure suivante :

  1. Créez l'équilibreur de charge HTTPS LB1 (appelé web-map-https ici).
  2. Testez LB1.
  3. Créez l'équilibreur de charge HTTP LB2 (aucun backend) (appelé web-map-http ici) avec la même adresse IP que celle utilisée dans LB1 et une redirection configurée dans le mappage d'URL.
  4. Testez la redirection.

Comme le montre le schéma suivant, LB1 est un équilibreur de charge HTTPS normal avec les composants de l'équilibreur de charge attendus.

LB2 est un équilibreur de charge HTTP ayant la même adresse IP que celle utilisée dans LB1, une instruction de redirection dans le mappage d'URL et aucun backend.

Configuration de la redirection HTTP vers HTTPS (cliquez pour agrandir)
Configuration de la redirection HTTP vers HTTPS

Pour apprendre à configurer la redirection HTTP vers HTTPS pour l'équilibrage de charge interne, consultez la page Configurer la redirection HTTP vers HTTPS pour les équilibreurs de charge HTTP(S) internes.

Configurer un équilibreur de charge HTTPS de base (LB1)

Cet exemple décrit comment configurer et tester un équilibreur de charge HTTPS.

Ce guide de configuration explique comment créer un équilibreur de charge HTTPS externe simple lorsque Cloud CDN est activé. L'équilibreur de charge dispose des ressources suivantes :

Pour obtenir un exemple multirégional basé sur le contenu incluant la configuration d'IPv6 et de certificats SSL, consultez la page Configurer un équilibreur de charge HTTPS externe multirégional basé sur le contenu.

Pour des concepts généraux, consultez la présentation de l'équilibrage de charge HTTP(S) externe.

Si vous utilisez GKE, l'équilibreur de charge est généralement configuré par le contrôleur Ingress (contrôleur d'entrée) de Kubernetes. Pour plus d'informations, consultez la page Configurer Ingress pour l'équilibrage de charge externe.

Topologie d'équilibreur de charge HTTPS

Dans ce guide, vous créez la configuration illustrée dans le schéma suivant.

Équilibrage de charge HTTPS simple (cliquez pour agrandir)
Équilibrage de charge HTTPS simple (cliquez pour agrandir)

La séquence d'événements du diagramme est la suivante :

  1. Un client envoie une requête de contenu à l'adresse IPv4 externe définie dans la règle de transfert.
  2. L'équilibreur de charge vérifie si la requête peut être diffusée à partir du cache. Si tel est le cas, l'équilibreur de charge diffuse le contenu demandé à partir du cache. Dans le cas contraire, le traitement se poursuit.
  3. La règle de transfert dirige la requête vers le proxy HTTPS cible.
  4. Le proxy cible utilise la règle du mappage d'URL pour identifier le service de backend unique qui reçoit toutes les requêtes.
  5. L'équilibreur de charge détermine que le service de backend ne possède qu'un seul groupe d'instances et dirige la requête vers une instance de machine virtuelle (VM) de ce groupe.
  6. La VM diffuse le contenu demandé par l'utilisateur.
Équilibrage de charge HTTP(S) simple avec Cloud CDN activé (cliquez pour agrandir)
Équilibrage de charge HTTP(S) simple avec Cloud CDN activé (cliquez pour agrandir)

Avant de commencer

Assurez-vous que votre configuration remplit les conditions préalables.

Configurer une ressource de certificat SSL

Créez une ressource de certificat SSL, comme décrit dans les articles suivants :

Nous vous recommandons d'utiliser un certificat géré par Google.

Dans cet exemple, nous partons du principe que vous disposez déjà d'une ressource de certificat SSL nommée www-ssl-cert.

Configurer les autorisations

Pour suivre la procédure de ce guide, vous devez être autorisé à créer des instances Compute Engine, des règles de pare-feu et des adresses IP réservées au sein d'un projet. Vous devez disposer d'un rôle de propriétaire ou d'éditeur de projet, ou des rôles IAM Compute Engine suivants :

Tâche Rôle requis
Créer des instances Administrateur d'instances
Ajouter et supprimer des règles de pare-feu Administrateur de sécurité
Créer des composants pour l'équilibreur de charge Administrateur réseau
Créer un projet (facultatif) Créateur de projet

Pour en savoir plus, consultez les guides suivants :

Créer un groupe d'instances géré

Pour que vous puissiez configurer un équilibreur de charge avec un backend Compute Engine, vos VM doivent appartenir à un groupe d'instances. Ce guide explique comment créer un groupe d'instances géré avec des VM Linux exécutant Apache, ainsi que comment configurer l'équilibrage de charge.

Le groupe d'instances géré fournit des VM exécutant les serveurs de backend d'un équilibreur de charge HTTPS externe. À des fins de démonstration, les backends diffusent leurs propres noms d'hôte.

Console

  1. Dans Google Cloud Console, accédez à la page Groupes d'instances.

    Accéder à la page Groupes d'instances

  2. Cliquez sur Créer un groupe d'instances.
  3. Sur la gauche, sélectionnez Nouveau groupe d'instances géré.
  4. Dans le champ Nom, saisissez lb-backend-example.
  5. Pour l'emplacement, sélectionnez Zone unique.
  6. Pour Région, sélectionnez la région de votre choix. Cet exemple utilise us-east1.
  7. Pour Zone, sélectionnez us-east1-b.
  8. Dans la section Modèle d'instance, sélectionnez Créer un modèle d'instance.
  9. Dans le champ Nom, saisissez lb-backend-template.
  10. Assurez-vous que le disque de démarrage est défini sur une image Debian, telle que Debian GNU/Linux 9 (Stretch). Ces instructions utilisent des commandes uniquement disponibles dans Debian, comme apt-get.
  11. Sous Gestion, sécurité, disques, mise en réseau et location unique, dans l'onglet Gestion, insérez le script suivant dans le champ Script de démarrage.

    #! /bin/bash
    apt-get update
    apt-get install apache2 -y
    a2ensite default-ssl
    a2enmod ssl
    vm_hostname="$(curl -H "Metadata-Flavor:Google" \
    http://169.254.169.254/computeMetadata/v1/instance/name)"
    echo "Page served from: $vm_hostname" | \
    tee /var/www/html/index.html
    
  12. Dans l'onglet Réseau, ajoutez les tags réseau suivants : allow-health-check

  13. Cliquez sur Enregistrer et continuer.

  14. Sous Mode autoscaling, sélectionnez Ne pas procéder à un autoscaling.

  15. Sous Nombre d'instances, saisissez 2.

  16. Pour créer le groupe d'instances, cliquez sur Créer.

gcloud

  1. Créez le modèle.

    gcloud compute instance-templates create lb-backend-template \
       --region=us-east1 \
       --network=default \
       --subnet=default \
       --tags=allow-health-check \
       --image-family=debian-9 \
       --image-project=debian-cloud \
       --metadata=startup-script='#! /bin/bash
         apt-get update
         apt-get install apache2 -y
         a2ensite default-ssl
         a2enmod ssl
         vm_hostname="$(curl -H "Metadata-Flavor:Google" \
         http://169.254.169.254/computeMetadata/v1/instance/name)"
         echo "Page served from: $vm_hostname" | \
         tee /var/www/html/index.html
         systemctl restart apache2'
    
  2. Créez un groupe d'instances géré basé sur ce modèle.

    gcloud compute instance-groups managed create lb-backend-example \
       --template=lb-backend-template --size=2 --zone=us-east1-b
    

Ajouter un port nommé au groupe d'instances

Pour votre groupe d'instances, définissez un service HTTP et mappez un nom de port sur le port correspondant. Une fois configuré, le service d'équilibrage de charge transfère le trafic vers le port nommé.

Console

  1. Dans Google Cloud Console, accédez à la page Groupes d'instances.

    Accéder à la page Groupes d'instances

  2. Cliquez sur le nom de votre groupe d'instances (dans cet exemple lb-backend-example), puis sur Modifier le groupe.
  3. Cliquez sur Préciser le mappage des noms des ports.
  4. Cliquez sur Ajouter un élément.
  5. Pour le nom du port, saisissez http. Pour le numéro de port, saisissez 80.
  6. Cliquez sur Enregistrer.

gcloud

Exécutez la commande gcloud compute instance-groups set-named-ports.

gcloud compute instance-groups set-named-ports lb-backend-example \
    --named-ports http:80 \
    --zone us-east1-b

Configurer une règle de pare-feu

Dans cet exemple, vous créez la règle de pare-feu fw-allow-health-check. Il s'agit d'une règle d'entrée qui autorise le trafic provenant des systèmes de vérification d'état Google Cloud (130.211.0.0/22 et 35.191.0.0/16). Cet exemple utilise le tag cible allow-health-check pour identifier les VM.

Console

  1. Dans Google Cloud Console, accédez à la page Pare-feu.

    Accéder à la page Pare-feu

  2. Cliquez sur Créer une règle de pare-feu pour créer la deuxième règle de pare-feu :
  3. Dans le champ Nom, saisissez fw-allow-health-check.
  4. Sous Réseau, sélectionnez Par défaut.
  5. Sous Cibles, sélectionnez Tags cibles spécifiés.
  6. Dans le champ Tags cibles, saisissez allow-health-check.
  7. Définissez Filtre source sur Plages d'adresses IP.
  8. Définissez Plages d'adresses IP sources sur 130.211.0.0/22 et 35.191.0.0/16.
  9. Dans Protocoles et ports, sélectionnez Protocoles et ports spécifiés.
  10. Cochez la case tcp, puis saisissez 80 pour les numéros de port.
  11. Cliquez sur Créer.

gcloud

gcloud compute firewall-rules create fw-allow-health-check \
    --network=default \
    --action=allow \
    --direction=ingress \
    --source-ranges=130.211.0.0/22,35.191.0.0/16 \
    --target-tags=allow-health-check \
    --rules=tcp:80

Réserver une adresse IP externe

Maintenant que vos instances sont opérationnelles, configurez une adresse IP externe statique globale que vos clients utiliseront pour accéder à votre équilibreur de charge.

Console

  1. Dans Google Cloud Console, accédez à la page Adresses IP externes.

    Accéder à la page Adresses IP externes

  2. Pour réserver une adresse IPv4, cliquez sur Réserver une adresse statique.
  3. Dans le champ Nom, saisissez lb-ipv4-1.
  4. Définissez Niveau de service réseau sur Premium.
  5. Définissez Version IP sur IPv4.
  6. Définissez Type sur Global.
  7. Cliquez sur Réserver.

gcloud

gcloud compute addresses create lb-ipv4-1 \
    --ip-version=IPV4 \
    --global

Notez l'adresse IPv4 réservée :

gcloud compute addresses describe lb-ipv4-1 \
    --format="get(address)" \
    --global

Configurer l'équilibreur de charge

Dans cet exemple, vous utilisez le protocole HTTPS entre le client et l'équilibreur de charge. Vous devez donc disposer d'une ou plusieurs ressources de certificat SSL pour configurer le proxy. Nous vous recommandons d'utiliser un certificat géré par Google.

Console

  1. Dans Google Cloud Console, accédez à la page Équilibrage de charge.

    Accéder à la page Équilibrage de charge

  2. Cliquez sur Create load balancer (Créer un équilibreur de charge).
  3. Dans la section Équilibrage de charge HTTP(S), cliquez sur Démarrer la configuration.
  4. Sélectionnez D'Internet vers mes VM, puis cliquez sur Continuer.
  5. Attribuez le nom web-map-https à l'équilibreur de charge.
  6. Cliquez sur Configuration du backend.
    1. Sous Créer ou sélectionner des services de backend et des buckets backend, sélectionnez Services de backend > Créer un service de backend.
    2. Ajoutez un nom pour votre service de backend (par exemple, web-backend-service).
    3. Sous Protocole, sélectionnez HTTP.
    4. Pour le port nommé, saisissez http.
    5. Dans la section Backends > Nouveau backend > Groupe d'instances, sélectionnez le groupe d'instances lb-backend-example.
    6. Pour le champ Numéros de ports, saisissez 80.
    7. Conservez les autres paramètres par défaut.
    8. Sous Vérification d'état, sélectionnez Créer une vérification d'état, puis attribuez-lui un nom, tel que http-basic-check.
    9. Définissez le protocole sur HTTP, puis cliquez sur Enregistrer et continuer.
    10. Sélectionnez Activer Cloud CDN.
    11. Conservez les autres paramètres par défaut.
    12. Cliquez sur Créer.
  7. Dans Règles d'hôte et de chemin d'accès, conservez les paramètres par défaut.
  8. Dans Configuration de l'interface, utilisez les valeurs suivantes :
    1. Définissez Protocole sur HTTPS.
    2. Définissez Adresse IP sur lb-ipv4-1, que vous avez créé précédemment.
    3. Assurez-vous que le paramètre Port est défini sur 443 pour autoriser le trafic HTTPS.
    4. Cliquez sur la liste déroulante Certificat, puis sélectionnez votre certificat SSL principal.
    5. Cliquez sur OK.
  9. Cliquez sur Review and finalize (Vérifier et finaliser).
  10. Une fois la configuration de l'équilibreur de charge terminée, cliquez sur Créer.
  11. Attendez que l'équilibreur de charge soit créé.
  12. Cliquez sur le nom de l'équilibreur de charge.
  13. Sur l'écran Détails de l'équilibreur de charge, notez la valeur IP:Port correspondant à votre équilibreur de charge.

gcloud

  1. Créez une vérification d'état.
        gcloud compute health-checks create http http-basic-check \
            --port 80
        
  2. Créez un service de backend.
        gcloud compute backend-services create web-backend-service \
            --protocol=HTTP \
            --port-name=http \
            --health-checks=http-basic-check \
            --global
        
  3. Ajoutez votre groupe d'instances en tant que backend au service de backend.
        gcloud compute backend-services add-backend web-backend-service \
            --instance-group=lb-backend-example \
            --instance-group-zone=us-east1-b \
            --global
        
  4. Créez un mappage d'URL pour diriger les requêtes entrantes vers le service de backend par défaut.
        gcloud compute url-maps create web-map-https \
            --default-service web-backend-service
        
  5. Si vous ne l'avez pas déjà fait, créez la ressource de certificat SSL global, comme indiqué dans les articles suivants :

    L'exemple suivant suppose que vous disposez déjà d'un fichier de certificat appelé certificate-file et d'un fichier de clé privée appelé private-key-file. L'exemple crée une ressource de certificat SSL appelée www-ssl-cert.

        gcloud compute ssl-certificates create www-ssl-cert \
            --certificate=certificate-file \
            --private-key=private-key-file \
            --global
        
  6. Créez un proxy HTTPS cible pour rediriger les requêtes vers votre mappage d'URL. Le serveur proxy est la partie de l'équilibreur de charge qui contient le certificat SSL pour l'équilibrage de charge HTTPS. Vous chargez donc également votre certificat à cette étape :
        gcloud compute target-https-proxies create https-lb-proxy \
            --url-map web-map-https --ssl-certificates www-ssl-cert
        
  7. Créez une règle de transfert globale pour acheminer les requêtes entrantes vers le proxy.
        gcloud compute forwarding-rules create https-content-rule \
            --address=lb-ipv4-1\
            --global \
            --target-https-proxy=https-lb-proxy \
            --ports=443
        

Activer Cloud CDN

Si vous n'avez pas encore activé Cloud CDN lors de la création de votre service de backend, vous pouvez le faire maintenant en mettant le service de backend à jour.

gcloud compute backend-services update web-backend-service \
    --enable-cdn \
    --cache-mode=CACHE_MODE

Remplacez CACHE_MODE par l'un des éléments suivants :

  • CACHE_All_STATIC : met automatiquement en cache le contenu statique. Les réponses marquées comme ne pouvant pas être mises en cache (instructions private, no-store ou no-cache dans les en-têtes de réponse Cache-Control) ne sont pas mises en cache. Pour mettre en cache le contenu dynamique, celui-ci doit comporter des en-têtes de mise en cache valides. Il s'agit du comportement par défaut de tous les nouveaux backends pour lesquels Cloud CDN est activé.

  • USE_ORIGIN_HEADERS (par défaut) : exige que l'origine définisse des en-têtes de mise en cache valides pour mettre en cache le contenu. Sans ces en-têtes, les réponses ne sont pas mises en cache à la périphérie de Google et nécessitent un trajet complet vers l'origine à chaque demande, ce qui peut affecter les performances et augmenter la charge sur le serveur d'origine. Il s'agit du comportement par défaut de tous les backends existants pour lesquels Cloud CDN est activé.

  • FORCE_CACHE_ALL : met en cache tout le contenu, en ignorant les instructions private, no-store ou no-cache dans les en-têtes de réponse Cache-Control. Cela peut entraîner une mise en cache du contenu privé propre à l'utilisateur (informations personnelles de l'utilisateur). Vous ne devez activer cette fonctionnalité que sur les backends qui ne diffusent pas de contenus privés ou dynamiques, tels que des buckets Cloud Storage.

Pour mettre automatiquement en cache les réponses statiques de votre origine, vous pouvez utiliser le paramètre mode de cache CACHE_ALL_STATIC.

Pour contrôler la mise en cache de chaque réponse à l'aide des instructions du cache HTTP, définissez le mode de cache sur "Utiliser les en-têtes de l'origine" (USE_ORIGIN_HEADERS). Pour en savoir plus sur les instructions de cache acceptées par Cloud CDN et sur les éléments non mis en cache par ce service, consultez les sections Contenu pouvant être mis en cache et Contenu ne pouvant pas être mis en cache.

Si votre origine ne diffuse aucun contenu dynamique par utilisateur, il peut être souhaitable de mettre en cache toutes les réponses issues de l'origine. Pour ce faire, utilisez le mode FORCE_CACHE_ALL. Ce mode met en cache toutes les réponses, quels que soient le type de contenu et les instructions de cache.

Si vous ne sélectionnez pas explicitement un mode de cache lorsque vous activez Cloud CDN sur un backend, l'API et l'outil de ligne de commande gcloud utilisent par défaut la valeur USE_ORIGIN_HEADERS, et Cloud Console prend la valeur par défaut CACHE_ALL_STATIC.

Tester le trafic envoyé à vos instances

Maintenant que le service d'équilibrage de charge est en cours d'exécution, vous pouvez envoyer le trafic vers la règle de transfert et observer la répartition du trafic entre les différentes instances.

Console

  1. Dans Google Cloud Console, accédez à la page Équilibrage de charge.

    Accéder à la page Équilibrage de charge

  2. Cliquez sur l'équilibreur de charge que vous venez de créer.
  3. Dans la section Backend, vérifiez que les VM sont opérationnelles. La colonne Opérationnelles doit indiquer que les deux VM sont opérationnelles (2/2). Si ce n'est pas le cas, commencez par actualiser la page. Il peut s'écouler quelques instants avant que Cloud Console n'indique que les VM sont opérationnelles. Si les backends ne semblent toujours pas opérationnels au bout de quelques minutes, vérifiez la configuration du pare-feu et le tag réseau attribué à vos VM de backend.
  4. Si vous utilisez un certificat géré par Google, vérifiez que l'état de votre ressource de certificat est ACTIVE. Pour plus d'informations, consultez la section État d'une ressource de certificat SSL géré par Google.
  5. Une fois que Cloud Console indique que les instances backend sont opérationnelles, vous pouvez tester votre équilibreur de charge à l'aide d'un navigateur Web en accédant à https://IP_ADDRESS. Remplacez IP_ADDRESS par l'adresse IP de l'équilibreur de charge.
  6. Si vous avez utilisé un certificat autosigné pour les tests, votre navigateur affiche un avertissement. Vous devez explicitement lui indiquer d'accepter un certificat autosigné.
  7. Votre navigateur doit afficher une page dont le contenu indique le nom de l'instance ayant diffusé la page, ainsi que sa zone (par exemple, Page served from: lb-backend-example-xxxx). Si ce n'est pas le cas, vérifiez les paramètres de configuration décrits dans ce guide.

Désactiver Cloud CDN

Console

Désactiver Cloud CDN pour un seul service de backend

  1. Dans Google Cloud Console, accédez à la page Cloud CDN.

    Accéder à la page "Cloud CDN"

  2. Sur le côté droit de la ligne concernant l'origine, cliquez sur Menu , puis sélectionnez Modifier.
  3. Décochez les cases des services de backend qui ne doivent plus utiliser Cloud CDN.
  4. Cliquez sur Mettre à jour.

Supprimer Cloud CDN pour tous les services de backend d'une origine

  1. Dans Cloud Console, accédez à la page Cloud CDN.

    Accéder à la page "Cloud CDN"

  2. Sur le côté droit de la ligne concernant l'origine, cliquez sur Menu , puis sélectionnez Supprimer.
  3. Cliquez sur Supprimer pour confirmer votre choix.

gcloud

gcloud compute backend-services update BACKEND_SERVICE_NAME \
    --no-enable-cdn

La désactivation de Cloud CDN n'invalide pas et ne purge pas les caches. Si vous désactivez, puis réactivez Cloud CDN, il est possible que la plupart ou la totalité du contenu mis en cache le soit encore. Pour empêcher la diffusion du contenu à partir du cache, vous devez l'invalider.

Lorsque vous avez terminé, Cloud Console affiche les informations sur votre équilibreur de charge HTTPS comme suit.

Équilibreur de charge HTTPS

Rediriger le trafic vers l'équilibreur de charge HTTPS

Maintenant que vous avez créé LB1 et vérifié qu'il fonctionne, vous pouvez créer LB2 (un équilibreur de charge HTTP partiel sans backend) pour rediriger le trafic HTTP vers LB1.

Cet exemple utilise le code de réponse 301. Vous pouvez également utiliser un autre code de réponse.

Pour configurer la redirection, vous pouvez utiliser Google Cloud Console ou importer un fichier YAML.

Si vous utilisez l'outil de ligne de commande gcloud, vous devez vous assurer que votre proxy HTTP cible pointe vers le mappage d'URL qui redirige le trafic. Si vous utilisez Cloud Console, cette opération est effectuée automatiquement.

Console

Démarrer la configuration

  1. Dans Google Cloud Console, accédez à la page Équilibrage de charge.

    Accéder à la page "Équilibrage de charge"

  2. Dans la section Équilibrage de charge HTTP(S), cliquez sur Démarrer la configuration.
  3. Sélectionnez D'Internet vers mes VM, puis cliquez sur Continuer.
  4. Pour le nom de l'équilibreur de charge, saisissez web-map-http.
  5. Laissez la fenêtre ouverte pour continuer.

Ignorer la configuration du backend

  1. Ignorez la section Configuration du backend.
    Cet équilibreur de charge n'a pas besoin d'un backend.

Configurer la redirection dans le mappage d'URL

  1. Dans la colonne de gauche de la page, cliquez sur Règles d'hôte et de chemin d'accès.
  2. Sélectionnez Règle d'hôte et de chemin d'accès avancée (redirection et réécriture d'URL).
  3. Sous Action, sélectionnez Redirigez le client vers un autre hôte/chemin d'accès.
  4. Sous Redirection de chemin, sélectionnez Redirection de chemin d'accès complet.
  5. Sous Rediriger le code de réponse, sélectionnez 301 - Moved Permanently.
  6. Sous Redirection HTTPS, sélectionnez Activer.
  7. Cliquez sur OK.
  8. Laissez la page de configuration de l'équilibreur de charge ouverte pour continuer.

Configurer la règle de transfert HTTP avec la même adresse IP que celle utilisée dans LB1

  1. Sur la page de configuration de l'équilibreur de charge, cliquez sur Configuration du frontend.
  2. Dans le champ Nom, saisissez http-content-rule.
  3. Définissez Protocole sur HTTP.
  4. Définissez Version IP sur IPv4.
  5. Dans le champ Adresse IP, définissez la même adresse IP que celle utilisée pour votre équilibreur de charge HTTPS.
  6. Assurez-vous que Port est défini sur 80 pour autoriser le trafic HTTP.
  7. Cliquez sur OK.
  8. Laissez la fenêtre ouverte pour continuer.

Vérifier la configuration

  1. Dans le panneau de gauche, cliquez sur Vérification et finalisation.
  2. Comparez vos paramètres à ce que vous aviez l'intention de créer.
  3. Si tout semble correct, cliquez sur Créer.

gcloud

  1. Créez un fichier YAML /tmp/web-map-http.yaml. Cet exemple utilise MOVED_PERMANENTLY_DEFAULT comme code de réponse.

    kind: compute#urlMap
    name: web-map-http
    defaultUrlRedirect:
       redirectResponseCode: MOVED_PERMANENTLY_DEFAULT
       httpsRedirect: True
    
  2. Créez le mappage d'URL de l'équilibreur de charge HTTP en important le fichier YAML. Le nom de ce mappage d'URL est web-map-http.

    gcloud compute url-maps import web-map-http \
       --source /tmp/web-map-http.yaml \
       --global
    

    Si vous mettez à jour un mappage d'URL existant, l'invite suivante apparaît :

    Url Map [web-map-http] will be overwritten.
    
    Do you want to continue (Y/n)?
    

    Pour continuer, appuyez sur Y.

  3. Vérifiez que le mappage d'URL est mis à jour. Le mappage d'URL de votre équilibreur de charge HTTP doit se présenter comme suit :

    gcloud compute url-maps describe web-map-http
    
    creationTimestamp: '2020-03-23T10:53:44.976-07:00'
    defaultUrlRedirect:
     httpsRedirect: true
     redirectResponseCode: MOVED_PERMANENTLY_DEFAULT
    fingerprint: 3A5N_RLrED8=
    id: '2020316695093397831'
    kind: compute#urlMap
    name: web-map-http
    selfLink: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/urlMaps/web-map-http
    
  4. Créez un proxy HTTP cible ou mettez à jour un proxy HTTP existant en utilisant web-map-http comme mappage d'URL.

    gcloud compute target-http-proxies create http-lb-proxy \
       --url-map=web-map-http \
       --global
    

    OR

    gcloud compute target-http-proxies update http-lb-proxy \
       --url-map=web-map-http \
       --global
    
  5. Créez une règle de transfert globale pour acheminer les requêtes entrantes vers le proxy.

    gcloud compute forwarding-rules create http-content-rule \
       --address=lb-ipv4-1 \ # Same IP address used for HTTPS load balancer
       --global \
       --target-http-proxy=http-lb-proxy \
       --ports=80
    

Lorsque vous avez terminé, Cloud Console affiche deux équilibreurs de charge, comme suit.

Les deux équilibreurs de charge

Cloud Console affiche des informations sur votre équilibreur de charge web-map-http comme suit.

Équilibreur de charge HTTP

Tester la redirection de HTTP vers HTTPS

Notez l'adresse IP réservée que vous utilisez pour les deux équilibreurs de charge.

gcloud compute addresses describe lb-ipv4-1 \
    --format="get(address)" \
    --global

Dans cet exemple, supposons que l'adresse IP réservée est 34.98.77.106. L'URL http://34.98.77.106/ redirige vers https://34.98.77.106/.

Au bout de quelques minutes, vous pouvez effectuer un test en exécutant la commande curl suivante. Assurez-vous de remplacer 34.98.77.106 par l'adresse IP réservée.

curl 34.98.77.106:80

Exemple de résultat :

<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>301 Moved</TITLE></HEAD><BODY>
<H1>301 Moved</H1>
The document has moved
<A HREF="https://34.98.77.106/">here</A>.
</BODY></HTML>