Remarques :

Utilisation d'Oracle Cloud Infrastructure pour publier un serveur Web accessible à partir d'Internet avec IPv6

Introduction

Dans ce tutoriel, nous allons expliquer comment créer un serveur Web (instance OCI) dans Oracle Cloud Infrastructure (OCI) et rendre ce serveur Web accessible à partir d'Internet. Nous allons non seulement rendre ce serveur Web accessible à partir d'une adresse IPv4 publique, mais aussi le rendre accessible à partir de l'adresse IPv6 publique avec les enregistrements DNS (FQDN) entièrement configurés.

image

Remarque : les domaines que nous avons utilisés dans ce tutoriel ont été créés et configurés à des fins de test uniquement.

image

Objectifs

Tâche 1 : création d'un VCN avec IPv6 activé

Nous avons maintenant créé un nouveau VCN avec de nouveaux espaces réseau IPv4 et IPv6 que nous pouvons utiliser pour découper les sous-réseaux IPv4 et IPv6.

Tâche 2 : créer un sous-réseau avec IPv6 activé

Le sous-réseau est maintenant prêt à être utilisé pour les adresses IPv4 et IPv6.

Tâche 3 : création d'une instance avec IPv6 activé

image

La tâche logique suivante consistera à accéder à l'instance à l'aide de SSH afin que nous puissions commencer à installer et configurer le serveur Web. Lorsque nous essayons de nous connecter au serveur Web à l'aide de l'adresse IPv4 publique et de la clé privée, nous ne sommes pas en mesure de nous connecter car le VCN créé dans la tâche 1 n'a pas de passerelle Internet et nous devons maintenant créer cette passerelle Internet d'abord dans le VCN et configurer le routage.

image

Tâche 4 : créer une passerelle Internet et configurer le routage

Pour permettre l'accès à une nouvelle instance (serveur Web) à partir d'Internet, en utilisant initialement SSH et éventuellement en passant à HTTP, nous devons établir une passerelle Internet.

Tâche 5 : ouvrir HTTP et HTTPS sur la liste de sécurité par défaut

Lorsqu'un nouveau VCN est créé, une liste de sécurité par défaut est appliquée aux sous-réseaux de ce VCN. Par défaut, ICMP et SSH sont autorisés à entrer (entrée). Nous devons ajouter HTTP et HTTPS à cette liste pour autoriser le trafic entrant pour le serveur Web.

Les règles de sécurité sont en place et le trafic IPv4 et IPv6 est autorisé sur les sous-réseaux VCN. Nous allons installer l'application de serveur Web sur l'instance.

Tâche 6 : installer un serveur Web sur une instance

Avant d'installer l'application de serveur Web, vérifiez rapidement si les ports du pare-feu sont configurés correctement. Utilisez le site Web IPV6 Online Port Scanner. Ce site Web dispose d'un scanner de port IPv6, mais vous pouvez également saisir des adresses IPv4.

Tâche 7 : configurer les enregistrements DNS

Remarque : les domaines que nous avons utilisés dans ce tutoriel ont été créés et configurés à des fins de test uniquement.

Maintenant, le site Web ou le serveur Web est accessible à partir d'Internet. Nous allons encore plus loin en configurant un nom de domaine qualifié complet qui peut être mémorisé plus facilement qu'une adresse IPv4 ou IPv6. Pour ce tutoriel, nous utilisons le sous-domaine suivant comme exemple : oci.iwanhoogendoorn.nl pour le nouveau serveur Web.

Tâche 8 : Créer un site Web personnalisé avec NGINX et PHP

Nous allons créer un site Web ou un script PHP personnalisé qui fournit un peu plus d'informations sur le réseau et les adresses IP avec NGINX.

Pour intégrer NGINX à PHP, suivez les étapes suivantes :

  1. Modifiez le fichier de configuration PHP-FPM pour intégrer NGINX.

    Modifiez le fichier /etc/php-fpm.d/www.conf.

    sudo nano /etc/php-fpm.d/www.conf
    
    • Contenu du fichier /etc/php-fpm.d/www.conf avant les modifications.

      ; Unix user/group of processes
      ; Note: The user is mandatory. If the group is not set, the default user's group
      ;	will be used.
      ; RPM: apache user chosen to provide access to the same directories as httpd
      **user =** apache
      ; RPM: Keep a group allowed to write in log dir.
      **group =** apache
      
    • Contenu du fichier /etc/php-fpm.d/www.conf après les modifications.

      ; Unix user/group of processes
      ; Note: The user is mandatory. If the group is not set, the default user's group
      ;	will be used.
      ; RPM: apache user chosen to provide access to the same directories as httpd
      **user = nginx**
      ; RPM: Keep a group allowed to write in log dir.
      **group = nginx**
      
  2. Modifiez le fichier de configuration NGINX pour intégrer PHP-FPM.

    • Modifiez le fichier /etc/nginx/conf.d/default.conf.

      [opc@ih-webserver-01 html]$ sudo nano /etc/nginx/conf.d/default.conf
      
    • Ajoutez la configuration suivante.

      location / {
      **# where is the NGINX root www folder?**
          root   /usr/share/nginx/html;
      # what are the default index files to look for in the directory?
          index **index.php** index.html index.htm;
      }
      
      # tell NGINX what to do when it sees PHP-FPM giving a 404 HTTP status in the response
      **location = /404.php {
      # where is the NGINX root www folder?
        root   /usr/share/nginx/html;
      # not return error responses with relevant status codes
        fastcgi_intercept_errors off;
      # where is PHP-FPM listening? the socket
        fastcgi_pass unix:/var/run/php-fpm/www.sock;
      # everytime we're in this location, tell PHP-FPM the complete script filename to be executed
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
      # and don't forget to tell PHP-FPM stuff like SERVER_NAME:
        include fastcgi_params;
      }**
      
      # tell NGINX what to do when it sees PHP-FPM a .php file
      **location ~ \.php$ {
      # where is the NGINX root www folder?
        root   /usr/share/nginx/html;
      # define custom error pages
        error_page 404 /404.php;
      # return error responses with relevant status codes
        fastcgi_intercept_errors on;
      # where is PHP-FPM listening? the socket
        fastcgi_pass unix:/var/run/php-fpm/www.sock;
      # everytime we're in this location, tell PHP-FPM the complete script filename to be executed
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
      # and don't forget to tell PHP-FPM stuff like SERVER_NAME:
        include fastcgi_params;
      }**
      
  3. Modifiez le fichier de configuration php.ini.

    • Modifiez le fichier /etc/php.ini.

      [opc@ih-webserver-01 /]$ sudo nano /etc/php.ini
      
    • Assurez-vous que la ligne suivante est présente, modifiée ou non commentée.

      cgi.fix_pathinfo = 0;
      
  4. Redémarrez les services PHP-FPM et NGINX.

    • Redémarrez le service PHP-FPM.

      sudo systemctl start php-fpm
      
    • Redémarrez le service NGINX.

      sudo systemctl restart nginx
      
  5. Créez une page personnalisée pour la page Web appropriée à gérer et à tester.

    • Créez une page 404.php personnalisée. Cette opération est nécessaire pour gérer correctement la redirection vers une page 404 personnalisée si la page n'existe pas et que vous tentez d'y accéder.

      [opc@ih-webserver-01 html]$ sudo nano 404.php
      

      Code de la page 404.php personnalisée.

      <?php
        header("HTTP/1.0 404 Not Found");
      ?>
      <html>
        <head>
          <title>404 Error - Page Not Found</title>
        </head>
        <body>404 Error - Page Not Found!</body>
      </html>
      
    • Créez une page info.php personnalisée.

      [opc@ih-webserver-01 html]$ sudo nano info.php
      

      Code pour la page info.php.

      <?php
      
      phpinfo();
      
    • Testez le site info.php qui fournit la preuve que PHP fonctionne avec NGNIX.

      image

      Lorsque le site Web est installé et configuré correctement, la page Web suivante s'affiche. Cette page fournit des informations sur vos adresses IPv4 ou IPv6 locales et distantes en fonction de la version IP que vous utilisez pour vous connecter. Cette page vous indiquera également le protocole que vous utilisez, HTTP ou HTTPS.

      image

Tâche 9 : tester le serveur Web à partir d'Internet

Remarque : les domaines que nous avons utilisés dans ce tutoriel ont été créés et configurés à des fins de test uniquement.

Même si nous avons déjà testé l'accessibilité du site Web ou du serveur Web en utilisant plusieurs méthodes. Nous aimons utiliser le site Web suivant pour effectuer le test final qui testera l'accessibilité et la configuration des enregistrements DNS en une seule fois. Votre site IPv6 est-il prêt ?

  1. Utilisez le nom de domaine qualifié complet oci.iwanhoogendoorn.nl pour effectuer un test.
  2. Vérifiez que les enregistrements DNS IPv4 sont configurés correctement.
  3. Vérifiez que les enregistrements DNS IPv6 sont configurés correctement.
  4. Vérifiez que le site Web est accessible sur IPv4.
  5. Vérifiez que le site Web est accessible sur IPv6.

image

Remerciements

Ressources de formation supplémentaires

Parcourez d'autres ateliers sur docs.oracle.com/learn ou accédez à davantage de contenus de formation gratuits sur le canal Oracle Learning YouTube. De plus, rendez-vous sur education.oracle.com/learning-explorer pour devenir un explorateur Oracle Learning.

Pour obtenir de la documentation sur le produit, visitez Oracle Help Center.