Remarques :
- Ce tutoriel nécessite un accès à Oracle Cloud. Pour vous inscrire à un compte gratuit, reportez-vous à Introduction au niveau gratuit d'Oracle Cloud Infrastructure.
- Il utilise des exemples de valeur pour les informations d'identification, la location et les compartiments Oracle Cloud Infrastructure. A la fin de l'exercice, remplacez ces valeurs par des valeurs propres à votre environnement cloud.
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.
Remarque : les domaines que nous avons utilisés dans ce tutoriel ont été créés et configurés à des fins de test uniquement.
Objectifs
-
Créez un site Web à l'aide d'une instance OCI accessible via IPv6. Nous avons également expliqué comment créer et configurer tous les autres prérequis pour rendre le site Web disponible à terme. En prime, nous avons également expliqué comment le serveur Web NGINX est installé et comment PHP est intégré. Enfin, nous fournirons un site Web ou un script PHP personnalisé qui peut être utilisé pour vérifier la connectivité IPv4 ou IPv6 à votre serveur Web et si vous êtes connecté avec HTTP ou HTTPS.
- Tâche 1 : créez un VCN avec IPv6 activé.
- Tâche 2 : créez un sous-réseau avec IPv6 activé.
- Tâche 3 : créez une instance avec IPv6 activé.
- Tâche 4 : créer une passerelle Internet et configurer le routage.
- Tâche 5 : ouvrez HTTP et HTTPS dans la liste de sécurité par défaut.
- Tâche 6 : installez un serveur Web sur cette instance.
- Tâche 7 : configurer les enregistrements DNS.
- Tâche 8 : Créez un site Web personnalisé avec NGINX et PHP.
- Tâche 9 : testez le serveur Web à partir d'Internet.
Tâche 1 : création d'un VCN avec IPv6 activé
-
Ouvrez le menu du menu déroulant et cliquez sur Réseau cloud virtuel.
- Veillez à sélectionner Réseaux cloud virtuels dans le menu.
- Sélectionnez le compartiment dans lequel vous souhaitez travailler. Si vous n'avez pas configuré le compartiment, utilisez le compartiment racine.
- Cliquez sur Créer un réseau cloud virtuel.
-
Dans Créer un réseau cloud virtuel, entrez les informations suivantes.
- Entrez un nom de VCN.
- Sélectionnez à nouveau le compartiment s'il n'est pas déjà prérempli.
- Sélectionnez le CIDRIPv4 CIDR IPv4 que vous souhaitez utiliser dans ce VCN. Pour ce tutoriel, nous avons utilisé un CIDR /16 car les sous-réseaux IPv4 (généralement, /24) seront découpés à partir de cette horloge CIDR.
- Défiler vers le bas.
- Pour IPv6, nous affecterons un préfixe alloué par Oracle. Sélectionnez Affecter un préfixe /56 alloué par Oracle.
- Cliquez sur Créer un réseau cloud virtuel.
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é
-
Cliquez sur Créer un sous-réseau.
-
Dans Sous-réseau, saisissez les informations suivantes :
- Entrez le nom du sous-réseau.
- Sélectionnez le compartiment dans lequel ce sous-réseau doit se trouver, s'il n'est pas déjà prérempli.
- Pour le type de sous-réseau, nous allons sélectionner Régional pour l'instant.
- Entrez le sous-réseau IPv4 que nous allons extraire du bloc CIDR que nous avons affecté au VCN. Assurez-vous que le nouveau bloc CIDR /24 est compris dans le /16 déterminé dans le VCN.
- Défiler vers le bas.
- Pour IPv6, nous affecterons un préfixe alloué par Oracle. Sélectionnez Affecter un préfixe /64 alloué par Oracle.
- Sélectionnez une nouvelle décimale HEX pour terminer le préfixe alloué par Oracle.
- Sélectionnez la table de routage par défaut pour le VCN.
- Rendre le sous-réseau public afin d'obtenir des adresses IP publiques, car nous en avons besoin pour rendre le serveur Web accessible à partir d'Internet.
- Défiler vers le bas.
- Sélectionnez le DHCP par défaut pour le VCN.
- Sélectionnez la liste de sécurité par défaut pour le VCN.
- Cliquez sur Créer un sous-réseau.
-
Notez que l'état du sous-réseau nouvellement créé est Provisionnement.
Au bout de quelques minutes, l'état du nouveau sous-réseau devient Disponible.
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é
-
Ouvrez la console OCI.
- Cliquez sur le menu hamburger en haut à gauche.
- Cliquez sur Instances dans la section associée.
-
Cliquez sur Créer une instance.
-
Dans Créer une instance de calcul, entrez les informations suivantes.
- Saisissez le nom de l'instance.
- Sélectionnez le compartiment dans lequel l'instance doit se trouver.
- Sélectionnez le domaine de disponibilité dans lequel placer cette instance. Pour ce tutoriel, en tant que région Nord-Ouest des Pays-Bas, nous ne disposons que d'un seul domaine de disponibilité.
- Défiler vers le bas.
Conservez toutes les valeurs par défaut et faites défiler vers le bas.
- Dans Réseau principal, sélectionnez Sélectionner un réseau cloud virtuel existant.
- Sélectionnez le VCN créé dans la tâche 1.
- Pour le sous-réseau, sélectionnez Sélectionner un sous-réseau existant.
- Sélectionnez le sous-réseau créé dans la tâche 2.
- Défiler vers le bas.
- Adresse IPv4 privée : sélectionnez Affecter automatiquement une adresse IPv4 privée.
- Adresse IPv6 : sélectionnez Affecter des adresses IPv6 à partir du préfixe de sous-réseau qui a été configuré lors de la création du sous-réseau dans la tâche 2.
- Affectation d'adresse IPv6 : sélectionnez Affecter automatiquement une adresse IPv6 privée à partir du préfixe.
- Défiler vers le bas.
- Pour accéder à cette instance Linux et la gérer, nous devons utiliser des clés SSH. Pour ce tutoriel, nous laisserons OCI générer une nouvelle paire de clés SSH.
- Téléchargez les clés privées et publiques sur l'ordinateur local afin de pouvoir les utiliser pour accéder à cette instance Linux et la gérer après sa création.
-
Cliquez sur Créer pour créer l'instance.
- Lors de la création, l'état de l'instance est PROVISIONNEMENT.
- Notez qu'aucun détail d'adresse IP n'est encore disponible.
- Une fois l'instance entièrement créée et prête, l'état est défini sur RUNNING.
- Notez que les détails de l'adresse IP sont maintenant disponibles.
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.
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.
-
Ouvrez la console OCI.
- Accédez à Réseaux cloud virtuels.
- Sélectionnez le VCN créé dans la tâche 1.
-
Sur la page Détails du VCN, cliquez sur Passerelles Internet.
-
Cliquez sur Créer une passerelle Internet.
-
Dans Créer une passerelle Internet, entrez les informations suivantes.
- Entrez le nom.
- Sélectionnez le compartiment.
- Cliquez sur Créer une passerelle Internet.
-
Ajoutez une règle de routage.
- La passerelle Internet est disponible.
- Cliquez sur Tables de routage.
- Le nombre de règles de la table de routage par défaut est
0
. - Cliquez sur Table de routage par défaut.
- Version du protocole : sélectionnez IPv4.
- Type de cible : sélectionnez Passerelle Internet.
- Bloc CIDR de destination : pour ce tutoriel, sélectionnez
0.0.0.0/0
car nous voulons que tout le trafic réseau IPv4 par défaut soit dirigé vers la passerelle Internet. - Sélectionnez la passerelle Internet cible créée ci-dessus dans cette tâche.
- Cliquez sur Ajouter des règles de routage.
- La nouvelle règle de routage par défaut IPv4 a été créée.
- Pour acheminer le trafic Internet IPv6, nous devons également créer une règle Internet par défaut IPv6. Cliquez à nouveau sur Ajouter des règles de routage.
- Version du protocole : sélectionnez IPv6.
- Type de cible : sélectionnez Passerelle Internet.
- Bloc CIDR de destination : pour ce tutoriel, sélectionnez
:/0
car nous voulons que tout le trafic réseau IPv6 par défaut soit dirigé vers la passerelle Internet. - Sélectionnez la passerelle Internet cible créée ci-dessus dans cette tâche.
- Cliquez sur Ajouter des règles de routage.
-
La nouvelle règle de routage par défaut IPv6 a été créée.
- Nous nous connectons à l'instance nouvellement créée via SSH à l'aide de la clé privée.
- Une fois la connexion établie, exécutez la commande
ip a
pour vérifier les adresses IP. - L'adresse IPv4 privée est la même que celle fournie pour les détails de l'instance.
- Nous testons également la connexion à l'aide du terminal de l'interface de ligne de commande macOS et exécutons la commande
ssh -i ssh-key-2024-02-05.key opc@xxx.xxx.xxx.48
. - Une fois la connexion établie, exécutez la commande
ip a
pour vérifier les adresses IP. - L'adresse IPv4 privée est la même que celle fournie pour les détails de l'instance dans la console OCI.
L'instance ne dispose pas de l'adresse IPv6 fournie pour les détails de l'instance dans la console OCI.
-
Ce problème peut être résolu par un redémarrage de l'instance.
- Accéder à l'instance
- Cliquez sur Redémarrer.
- Connectez-vous à nouveau à l'instance via SSH à l'aide de la clé privée.
- Une fois la connexion établie, exécutez la commande
ip a
pour vérifier les adresses IP. - L'adresse IPv4 privée est la même que celle fournie dans les détails de l'instance.
- L'adresse IPv6 privée est la même que celle fournie dans les détails de l'instance.
- Pour tester la connectivité vers Internet, nous faisons également un ping à l'adresse IP IPv6 de l'un des serveurs DNS de Google.
- Effectuez un test rapide pour voir si nous pouvons nous connecter à une instance à l'aide d'une adresse IPv6. Exécutez la commande
ssh -i ssh-key-2024-02-05.key opc@2603:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx
à tester. - Une fois la connexion établie, exécutez la commande
ip a
pour vérifier les adresses IP. - L'adresse IPv4 privée est la même que celle fournie dans les détails de l'instance.
- L'adresse IPv6 privée est la même que celle fournie dans les détails de l'instance.
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.
-
Cliquez sur le menu latéral et sélectionnez Réseaux cloud virtuels.
-
Cliquez sur le VCN créé dans la tâche 1.
-
Défiler vers le bas.
-
Cliquez sur Listes de sécurité.
-
Cliquez sur Liste de sécurité par défaut.
-
Cliquez sur Ajouter des règles entrantes.
-
Ajoutez de nouvelles règles de sécurité pour le trafic réseau IPv4.
- Type de source : sélectionnez CIDR.
- CIDR source : entrez
0.0.0.0/0
. - Protocole IP : sélectionnez TCP.
- Plage de ports source : conservez la valeur par défaut (Tous).
- Plage de ports de destination : sélectionnez
80,443
(HTTP et HTTPS). - Entrer la description.
- Cliquez sur Ajouter des règles entrantes.
-
Consultez les règles de sécurité IPv4 pour autoriser le trafic entrant HTTP et HTTPS.
-
Afin d'ajouter de nouvelles règles de sécurité pour le trafic réseau IPv6, créez des règles entrantes. Cliquez à nouveau sur Add Ingress Rules.
- Type de source : sélectionnez CIDR.
- CIDR source : entrez
::/0
. - Protocole IP : sélectionnez TCP.
- Plage de ports source : conservez la valeur par défaut (Tous).
- Plage de ports de destination : sélectionnez
80,443
(HTTP et HTTPS). - Entrer la description.
- Cliquez sur Ajouter des règles entrantes.
-
Consultez les règles de sécurité IPv6 pour autoriser le trafic entrant HTTP et HTTPS.
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.
-
Entrez l'adresse IPv4 avec les détails permettant d'effectuer l'analyse sur le port TCP
80
. Notez que cet état est CLOSED car l'application de serveur Web n'est pas encore installée et que l'état n'est pas FILTERED car nous avons ajouté les règles à la liste de sécurité par défaut. -
Pour l'adresse IPv6, entrez les détails suivants. La sortie est identique à IPv4 pour les mêmes raisons.
-
Sur la console de terminal de l'instance de serveur Web ou SSH. Saisissez les commandes suivantes pour mettre à jour le gestionnaire de packages logiciels DNF et installer les utilitaires DNF.
[opc@ih-webserver-01 ~]$ sudo dnf update -y [opc@ih-webserver-01 ~]$ sudo dnf install dnf-utils -y
-
Mettez à jour le fichier
nginx.repo
pour indiquer les détails de téléchargement et d'installation de l'application de serveur Web NGINX.[opc@ih-webserver-01 ~]$ sudo nano /etc/yum.repos.d/nginx.repo
Copiez et collez le contenu suivant dans le fichier
nginx.repo
.[nginx-stable] name=nginx stable repo baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ gpgcheck=1 enabled=1 gpgkey=https://nginx.org/keys/nginx_signing.key module_hotfixes=true [nginx-mainline] name=nginx mainline repo baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/ gpgcheck=1 enabled=0 gpgkey=https://nginx.org/keys/nginx_signing.key module_hotfixes=true
Vérifiez le contenu du fichier
nginx.repo
.[opc@ih-webserver-01 ~]$ sudo more /etc/yum.repos.d/nginx.repo [nginx-stable] name=nginx stable repo baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ gpgcheck=1 enabled=1 gpgkey=https://nginx.org/keys/nginx_signing.key module_hotfixes=true [nginx-mainline] name=nginx mainline repo baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/ gpgcheck=1 enabled=0 gpgkey=https://nginx.org/keys/nginx_signing.key module_hotfixes=true [opc@ih-webserver-01 ~]$
-
Par défaut, le référentiel des packages Nginx stables est utilisé. Pour utiliser les packages Nginx de la ligne principale, exécutez la commande suivante.
[opc@ih-webserver-01 ~]$ sudo yum-config-manager --enable nginx-mainline
-
Utilisez la commande suivante pour installer l'application de serveur Web NGINX.
[opc@ih-webserver-01 ~]$ sudo dnf install nginx
-
Pour démarrer l'application de serveur Web NGINX, exécutez la commande suivante.
[opc@ih-webserver-01 ~]$ sudo systemctl start nginx
-
Une fois l'installation terminée, activez NGINX pour qu'il démarre automatiquement à l'initialisation du système et démarrez le serveur Web.
[opc@ih-webserver-01 ~]$ sudo systemctl enable nginx Created symlink /etc/systemd/system/multi-user.target.wants/nginx.service → /usr/lib/systemd/system/nginx.service.
-
Utilisez la commande suivante pour vérifier le statut d'exécution de l'application de serveur Web NGINX.
[opc@ih-webserver-01 ~]$ systemctl status nginx ● nginx.service - nginx - high performance web server Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled) Active: active (running) since Tue 2024-02-06 08:58:43 GMT; 2min 47s ago Docs: http://nginx.org/en/docs/ Main PID: 43323 (nginx) Tasks: 3 (limit: 99901) Memory: 2.8M CGroup: /system.slice/nginx.service ├─43323 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf ├─43324 nginx: worker process └─43325 nginx: worker process Feb 06 08:58:43 ih-webserver-01 systemd[1]: Starting nginx - high performance web server... Feb 06 08:58:43 ih-webserver-01 systemd[1]: Started nginx - high performance web server. [opc@ih-webserver-01 ~]$
-
Utilisez la commande suivante pour vérifier la version de l'application de serveur Web NGINX.
[opc@ih-webserver-01 ~]$ nginx -v nginx version: nginx/1.25.3 [opc@ih-webserver-01 ~]$
-
firewalld
est un pare-feu personnel basé sur une zone installé sur le déploiement Oracle Linux sur OCI. Un pare-feu est déjà configuré via la liste de sécurité par défaut sur les sous-réseaux VCN. Nous désactiverons le servicefirewalld
interne. Exécutez la commande suivante .[opc@ih-webserver-01 nginx]$ sudo systemctl stop firewalld [opc@ih-webserver-01 nginx]$ sudo systemctl disable firewalld Removed /etc/systemd/system/multi-user.target.wants/firewalld.service. Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service. [opc@ih-webserver-01 nginx]$ sudo setenforce 0 [opc@ih-webserver-01 nginx]$
-
Pour vérifier si le service de serveur Web est en cours d'exécution, vérifiez si le processus d'écoute est en cours d'exécution. Exécutez la commande suivante . Notez que les trois services NGINX exécutent tous les services d'écoute sur IPv4 et le port
80
. Ce qui se distingue ici, c'est que le processus d'écoute IPv6 nous manque.[opc@ih-webserver-01 ~]$ sudo lsof -i -P -n | grep LISTEN systemd 1 root 71u IPv4 19039 0t0 TCP *:111 (LISTEN) systemd 1 root 82u IPv6 19041 0t0 TCP *:111 (LISTEN) rpcbind 1421 rpc 4u IPv4 19039 0t0 TCP *:111 (LISTEN) rpcbind 1421 rpc 6u IPv6 19041 0t0 TCP *:111 (LISTEN) osms-agen 2429 root 7u IPv6 41713 0t0 TCP 127.0.0.1:32768 (LISTEN) osms-agen 2429 root 10u IPv4 41722 0t0 TCP 127.0.0.1:9003 (LISTEN) pmcd 2469 pcp 0u IPv4 35603 0t0 TCP 127.0.0.1:44321 (LISTEN) pmcd 2469 pcp 3u IPv6 35604 0t0 TCP [::1]:44321 (LISTEN) pmlogger 3188 pcp 7u IPv4 42005 0t0 TCP 127.0.0.1:4330 (LISTEN) pmlogger 3188 pcp 8u IPv6 42006 0t0 TCP [::1]:4330 (LISTEN) sshd 6745 root 3u IPv4 54797 0t0 TCP *:22 (LISTEN) sshd 6745 root 4u IPv6 54799 0t0 TCP *:22 (LISTEN) nginx 43323 root 6u IPv4 98324 0t0 TCP *:80 (LISTEN) nginx 43324 nginx 6u IPv4 98324 0t0 TCP *:80 (LISTEN) nginx 43325 nginx 6u IPv4 98324 0t0 TCP *:80 (LISTEN)
-
Une autre vérification rapide, nous effectuons une boucle vers le serveur Web local pour voir si le serveur Web NGINX par défaut est accessible à l'aide de IPv4.
[opc@ih-webserver-01 ~]$ curl http://localhost <!DOCTYPE html> <html> <head> <title>Welcome to nginx!</title> <style> html { color-scheme: light dark; } body { width: 35em; margin: 0 auto; font-family: Tahoma, Verdana, Arial, sans-serif; } </style> </head> <body> <h1>Welcome to nginx!</h1> <p>If you see this page, the nginx web server is successfully installed and working. Further configuration is required.</p> <p>For online documentation and support please refer to <a href="http://nginx.org/">nginx.org</a>.<br/> Commercial support is available at <a href="http://nginx.com/">nginx.com</a>.</p> <p><em>Thank you for using nginx.</em></p> </body> </html> [opc@ih-webserver-01 ~]$
-
Nous effectuerons le même test à partir d'Internet en utilisant le même site Web IPv6 Online Port Scanner. Le port est désormais OPEN pour IPv4.
-
Le test final sera de tester le site Web ou le serveur Web est accessible à l'aide d'un navigateur distant à l'aide de IPv4. L'URL utilisée est
http://144.xxx.xxx.xxx
. -
Même si nous avons installé l'application de serveur Web NGINX, nous obtenons toujours le résultat suivant pour l'adresse IPv6.
Pour résoudre ce problème, nous devons nous assurer que le serveur Web est également configuré pour écouter les adresses IPv6. Pour ce faire, modifiez le fichier
default.conf
nginx.[opc@ih-webserver-01 conf.d]$ sudo nano /etc/nginx/conf.d/default.conf
La section server du fichier de configuration ressemble à ce qui suit.
server { listen 80; server_name localhost; #access_log /var/log/nginx/host.access.log main; location / { root /usr/share/nginx/html; index index.html index.htm; }
Ajoutez la ligne suivante à la section serveur.
**listen [::]:80;**
La section server ressemblera à ceci.
server { listen 80; **listen [::]:80;** server_name localhost; #access_log /var/log/nginx/host.access.log main; location / { root /usr/share/nginx/html; index index.html index.htm; }
Après la mise à jour, le fichier
default.conf
ressemblera.[opc@ih-webserver-01 conf.d]$ sudo more /etc/nginx/conf.d/default.conf server { listen 80; **listen [::]:80;** server_name localhost; #access_log /var/log/nginx/host.access.log main; location / { root /usr/share/nginx/html; index index.html index.htm; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } # proxy the PHP scripts to Apache listening on 127.0.0.1:80 # #location ~ \.php$ { # proxy_pass http://127.0.0.1; #} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # #location ~ \.php$ { # root html; # fastcgi_pass 127.0.0.1:9000; # fastcgi_index index.php; # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; # include fastcgi_params; #} # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # #location ~ /\.ht { # deny all; #} } [opc@ih-webserver-01 conf.d]$
-
Utilisez la commande suivante pour redémarrer le serveur Web NGINX.
[opc@ih-webserver-01 ~]$ sudo systemctl restart nginx
-
Utilisez la commande suivante pour vérifier à nouveau les processus d'écoute. Notez que NGINX est également répertorié sur IPv6 en regard de IPv4 maintenant.
[opc@ih-webserver-01 conf.d]$ sudo lsof -i -P -n | grep LISTEN systemd 1 root 46u IPv4 19039 0t0 TCP *:111 (LISTEN) systemd 1 root 48u IPv6 19041 0t0 TCP *:111 (LISTEN) rpcbind 1421 rpc 4u IPv4 19039 0t0 TCP *:111 (LISTEN) rpcbind 1421 rpc 6u IPv6 19041 0t0 TCP *:111 (LISTEN) osms-agen 2429 root 7u IPv6 41713 0t0 TCP 127.0.0.1:32768 (LISTEN) osms-agen 2429 root 10u IPv4 41722 0t0 TCP 127.0.0.1:9003 (LISTEN) pmcd 2469 pcp 0u IPv4 35603 0t0 TCP 127.0.0.1:44321 (LISTEN) pmcd 2469 pcp 3u IPv6 35604 0t0 TCP [::1]:44321 (LISTEN) pmlogger 3188 pcp 7u IPv4 42005 0t0 TCP 127.0.0.1:4330 (LISTEN) pmlogger 3188 pcp 8u IPv6 42006 0t0 TCP [::1]:4330 (LISTEN) sshd 6745 root 3u IPv4 54797 0t0 TCP *:22 (LISTEN) sshd 6745 root 4u IPv6 54799 0t0 TCP *:22 (LISTEN) nginx 54944 root 6u IPv4 219674 0t0 TCP *:80 (LISTEN) nginx 54944 root 7u IPv6 219675 0t0 TCP *:80 (LISTEN) nginx 54945 nginx 6u IPv4 219674 0t0 TCP *:80 (LISTEN) nginx 54945 nginx 7u IPv6 219675 0t0 TCP *:80 (LISTEN) nginx 54946 nginx 6u IPv4 219674 0t0 TCP *:80 (LISTEN) nginx 54946 nginx 7u IPv6 219675 0t0 TCP *:80 (LISTEN) [opc@ih-webserver-01 conf.d]$
Nous effectuerons le même test à partir d'Internet en utilisant le même site Web IPv6 Online Port Scanner. Le port est désormais OPEN pour IPv6.
Une autre vérification rapide, nous effectuons une boucle vers le serveur Web local pour voir si le serveur Web NGINX par défaut est accessible à l'aide de IPv6.
[opc@ih-webserver-01 conf.d]$ curl -6 "http://[::1]:80" <!DOCTYPE html> <html> <head> <title>Welcome to nginx!</title> <style> html { color-scheme: light dark; } body { width: 35em; margin: 0 auto; font-family: Tahoma, Verdana, Arial, sans-serif; } </style> </head> <body> <h1>Welcome to nginx!</h1> <p>If you see this page, the nginx web server is successfully installed and working. Further configuration is required.</p> <p>For online documentation and support please refer to <a href="http://nginx.org/">nginx.org</a>.<br/> Commercial support is available at <a href="http://nginx.com/">nginx.com</a>.</p> <p><em>Thank you for using nginx.</em></p> </body> </html> [opc@ih-webserver-01 conf.d]$
-
Le test final consiste à vérifier si le site Web ou le serveur Web est accessible à l'aide d'un navigateur distant à l'aide de IPv6. L'URL utilisée est
http://[2603:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx]
Remarque : lorsque nous utilisons une adresse IPv6 dans le navigateur, nous devons la placer entre crochets.
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.
-
Nous nous connecterons au panneau d'administration du domaine du registraire pour le domaine
iwanhoogendoorn.nl
.- Notez que nous avons sélectionné le domaine approprié à configurer.
- Sélectionnez Gestion DNS.
-
Tous les enregistrements DNS du domaine iwanhoogendoorn.nl sont répertoriés comme indiqué dans l'image suivante.
- Ajoutez le sous-domaine
oci
au domaine pour IPv4 et sélectionnez l'adresse IPv4 publique de l'instance. - Cliquez sur Ajouter.
- Ajoutons maintenant le sous-domaine
oci
au domaine pour IPv6 et sélectionnez l'adresse IPv6 de l'instance. - Cliquez sur Ajouter.
- Sur la page de présentation du DNS, consultez l'enregistrement DNS oci.iwanhoogendoorn.nl pour IPv4.
- Sur la page de présentation du DNS, consultez l'enregistrement DNS oci.iwanhoogendoorn.nl pour IPv6.
- Ajoutez le sous-domaine
-
Utilisez la commande
nslookup
pour tester si oci.iwanhoogendoorn.nl est résolu sur l'adresse IPv4 correcte.iwanhoogendoorn@Iwans-MacBook-Pro ~ % nslookup oci.iwanhoogendoorn.nl
-
Utilisez la commande
nslookup
pour tester si oci.iwanhoogendoorn.nl est résolu sur l'adresse IPv6 correcte.iwanhoogendoorn@Iwans-MacBook-Pro ~ % nslookup -q=AAAA oci.iwanhoogendoorn.nl
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.
-
Installez le gestionnaire de processus PHP FastCGI (PHP-FPM). PHP-FPM est un démon FastCGI alternatif pour PHP qui permet à un site Web de gérer des charges élevées.
sudo dnf install php-fpm
-
Vérifiez la version de PHP installée.
[opc@ih-webserver-01 /]$ php -v PHP 7.2.24 (cli) (built: Oct 22 2019 08:28:36) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies [opc@ih-webserver-01 /]$
-
Pour que NGINX fonctionne avec PHP et inversement, une certaine configuration doit être effectuée. Un fichier de configuration côté PHP et côté NGNIX.
Selon votre distribution Linux, les versions NGINX et PHP-FPM, les noms des fichiers de configuration et des chemins d'accès peuvent être différents, ce qui rend l'intégration de NGINX et PHP beaucoup plus difficile.
Fichiers et répertoires importants pour PHP-FPM et NGINX.
Description Oracle Linux 8 : Autres installations/distributions Chemin racine Web NGINX /usr/share/nginx/html /usr/share/nginx/www Fichier de configuration PHP FPM /etc/php-fpm.d/www.conf php-fpm.conf Fichier de configuration NGINX /etc/nginx/conf.d/default.conf nginx.conf Fichier socket FPM PHP /run/php-fpm/www.sock php-fpm.sock, phpx.x-fpm.sock (x.x = version) Fichier de paramètres FastCGI /etc/nginx/fastcgi_params fastcgi.conf Fichier de configuration PHP /etc/php.ini
Pour intégrer NGINX à PHP, suivez les étapes suivantes :
-
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**
-
-
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; }**
-
-
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;
-
-
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
-
-
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.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.
-
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 ?
- Utilisez le nom de domaine qualifié complet oci.iwanhoogendoorn.nl pour effectuer un test.
- Vérifiez que les enregistrements DNS IPv4 sont configurés correctement.
- Vérifiez que les enregistrements DNS IPv6 sont configurés correctement.
- Vérifiez que le site Web est accessible sur IPv4.
- Vérifiez que le site Web est accessible sur IPv6.
Remerciements
- Auteur - Iwan Hoogendoorn (spécialiste du réseau OCI)
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.
Use Oracle Cloud Infrastructure to Publish a Webserver Accessible from the Internet with IPv6
F93544-01
February 2024
Copyright © 2024, Oracle and/or its affiliates.