Pourquoi ne puis-je pas me connecter à un site Web hébergé sur mon instance EC2 ?
Je ne parviens pas à me connecter à un site Web public hébergé sur mon instance Amazon Elastic Compute Cloud (Amazon EC2).
Brève description
Pour résoudre une erreur de site Web inaccessible, vérifiez que les paramètres de configuration de votre instance EC2 sont corrects. Par exemple, si votre instance ne dispose pas des configurations DNS appropriées, vous ne pourrez pas vous connecter à un site Web hébergé sur cette instance.
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.
Utilisez SSH ou SSM Session Manager pour vous connecter à l'instance. Si aucune méthode n'est disponible, utilisez la console série EC2 pour vous connecter aux instances créées sur le système Nitro.
Vérifier que l’instance est en cours d’exécution et transmet bien les deux vérifications d’état
Vérifiez que l’instance est en cours d'exécution dans la console Amazon EC2. Si vous rencontrez un problème de vérification d’état, suivez les étapes décrites dans la section Pourquoi mon instance Linux EC2 est-elle inaccessible et ses vérifications d'état échouent-elles ? Vérifiez que l’instance démarre correctement. Pour plus d'informations, consultez la section Sortie de la console d'instance ou Capturer un instantané d'une instance inaccessible.
Vérifiez que les journaux système de l’instance ne contiennent pas d’erreurs de démarrage.
Pour vérifier les erreurs de démarrage, appliquez les méthodes suivantes :
- Si vous recevez une erreur de panique du noyau, consultez la section Comment corriger une erreur « Kernel panic - not syncing » (Panique du noyau - non-synchronisation) avec les instances EC2 ?
- Pour toutes autres erreurs liées au système d’exploitation, consultez la section Comment puis-je résoudre un problème d’instance EC2 Linux qui a échoué à la vérification de l'état de l'instance en raison de problèmes liés au système d’exploitation ?
Vérifier la configuration du groupe de sécurité de l'instance et de l'ACL réseau
Utilisez les méthodes suivantes pour vérifier la configuration de votre instance :
- Vérifiez que le groupe de sécurité et l'ACL réseau associés à l'instance autorisent le trafic sur les ports 80 et 443.
- Assurez-vous que la table de routage du sous-réseau de l'instance comporte une route par défaut vers une passerelle Internet.
Vérifier que la configuration DNS de l’instance est correcte
Utilisez les méthodes suivantes pour vérifier la configuration de votre instance :
- Si votre site Web utilise le service DNS Route 53, vérifiez que les enregistrements DNS sont correctement configurés.
- Assurez-vous que l’instance dispose d’une adresse IP Elastic qui lui est attribuée. Si vous arrêtez et démarrez votre instance, l’adresse IP Elastic reste associée à l’instance.
- Veillez à mapper l’adresse IP publique ou l’adresse IP Elastic à un enregistrement A.
Vérification du bon fonctionnement du serveur Web et qu’aucun pare-feu au niveau du système d’exploitation ne bloque l’accès aux ports
Les ports réseau sont les points de terminaison de communication auxquels les différents services envoient des demandes. Ces demandes incluent les demandes de connexion au site Web des utilisateurs. Les serveurs Web écoutent le trafic HTTP sur le port 80 et utilisent le port 443 pour le trafic chiffré avec TLS/SSL. Si le serveur Web ne fonctionne pas ou si les pare-feux bloquent ces ports, les utilisateurs ne peuvent pas se connecter à votre site Web. Procédez comme suit :
-
Pour vérifier si le site Web s'exécute localement, exécutez la commande suivante depuis le site Web d'hébergement de l'instance EC2 :
curl https://localhost
-ou-
curl http://localhost:443
Remarque : Si vous rencontrez des problèmes lorsque vous utilisez curl, vérifiez l’existence éventuelle de problèmes avec le serveur d'hébergement Web de l'instance. Vérifiez également la configuration de votre application dans l'instance.
Connectez-vous à votre instance à l'aide de SSH, de SSM Session Manager ou de la console série EC2. -
Vérifiez l'état du service du serveur Web.
Pour les systèmes RHEL, CentOS, Fedora et Amazon Linux, exécutez la commande systemctl status httpd pour vérifier l'état du serveur Web. La commande renvoie des informations indiquant que le serveur Web est inactif :$ sudo systemctl status httpd.service The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled) Active: inactive (dead)
Pour les systèmes Debian ou Ubuntu, exécutez la commande systemctl status apache2 pour vérifier l’état du serveur Web. Le serveur Web doit écouter sur le port 80 ou 443. La commande renvoie des informations indiquant que le serveur Web est inactif :
$ sudo systemctl status apache2.service The Apache HTTP ServerLoaded: loaded (/lib/systemd/system/apache2.service; disabled; vendor preset: disabled) Active: inactive (dead)
-
Pour démarrer le serveur Web et activer le service afin qu'il se lance au démarrage, exécutez les commandes suivantes :
Pour les systèmes RHEL, CentOS, Fedora et Amazon Linux :$ sudo systemctl start httpd; sudo systemctl enable httpd
Pour les systèmes Debian ou Ubuntu :
$ sudo systemctl start apache2; sudo systemctl enable apache2
-
Vérifiez que le service du serveur Web est en cours d'exécution et activé :
Pour les systèmes RHEL, CentOS, Fedora et Amazon Linux, exécutez la commande suivante :$ sudo systemctl status httpd.service The Apache HTTP ServerLoaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)Active: active (running)
Pour les systèmes Debian ou Ubuntu, exécutez la commande suivante :
$ sudo systemctl status apache2.service The Apache HTTP ServerLoaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)Active: active (running)
Remarque : Pour les anciens systèmes Linux exécutant SystemV, exécutez la commande suivante pour vérifier l'état du serveur Web.
Pour les systèmes Debian ou Ubuntu, vous devez remplacer httpd par apache2 :$ sudo service httpd statushttpd is stopped
Pour redémarrer un service de serveur Web arrêté sur SystemV, exécutez la commande suivante :
$ sudo service httpd start Starting httpd: [ OK ]
-
Pour vérifier que le serveur Web écoute les demandes de connexion entrantes des utilisateurs sur le port 80 ou 443, exécutez la commande suivante :
$ sudo netstat -tulpn | grep -iP 'httpd|apache2' tcp 0 0 :::80 :::* LISTEN 2961/httpd
Remarque : Si plusieurs interfaces sont en cours d'exécution, vérifiez que le serveur Web écoute toutes les adresses IP en exécutant la commande suivante :
cat /etc/httpd/conf/httpd.conf | grep Listen
Voici des exemples de sorties :
Listen *:80
-ou-
Listen *:443
-
Vérifiez l'état des pare-feux au niveau du système d'exploitation. Si vous trouvez un pare-feu actif, assurez-vous qu'il autorise les requêtes sur les ports 80 et 443.
(En option) Pour vérifier que les règles iptables bloquent les requêtes entrantes sur les ports 80 et 443, exécutez la commande suivante :$ sudo iptables -vnL Chain INPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 35 10863 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 0 0 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22 0 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
La sortie de la commande IPTables précédente indique que seuls ICMP, localhost et le port 22/TCP (SSH) sont autorisés. Cela signifie que les connexions entrantes vers les ports 80/TCP et 443/TCP sont bloquées ou rejetées.
Pour autoriser les ports 80 et 443 à accepter les requêtes de connexion HTTP et HTTPS entrantes, exécutez la commande suivante :$ iptables -I INPUT -p tcp --match multiport --dports 80,443 -j ACCEPT
La sortie suivante montre que la règle multiport est ajoutée aux ports de service du serveur Web, 80/TCP et 443/TCP.
Chain INPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 multiport dports 80,443 486 104K ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 0 0 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22 0 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Pour Amazon Linux 2023, Amazon Linux 2 et RHEL 7 et versions ultérieures
Pour vérifier si le service firewalld est en cours d'exécution, exécutez la commande suivante :
$ sudo firewall-cmd --staterunning
Si le service firewalld est en cours d'exécution, exécutez les commandes suivantes pour autoriser les connexions sur les ports 80/TCP et 443/TCP. La dernière commande de l'exemple recharge le service pour appliquer les règles récemment ajoutées :
$ sudo firewall-cmd --add-service=http --permanent success $ sudo firewall-cmd --add-service=https --permanent success $ sudo firewall-cmd --reload success
Pour les serveurs Debian et Ubuntu
Procédez comme suit :
-
Pour vérifier la présence d'un pare-feu simplifié (UFW), exécutez la commande suivante :
$ sudo ufw status verbose Status: active
-
Si un pare-feu UFW est en cours d'exécution, utilisez la commande suivante pour autoriser les requêtes de connexion entrantes sur les ports 80 et 443 :
$ sudo ufw allow in 80/tcp Rule added Rule added (v6) $ sudo ufw allow 443/tcp Rule added Rule added (v6)
Consultez les journaux des erreurs d'accès à votre serveur Web pour détecter tout problème. Les journaux du serveur Web se trouvent dans /var/log. Les emplacements des journaux du serveur Web par défaut sont les suivants :
- Amazon Linux et RHEL : /var/log/httpd
- Debian et Ubuntu : /var/log/apache2
Remarque : L'emplacement du journal de serveur Web dépend de la configuration de votre serveur.
Informations connexes
Vidéos associées


Contenus pertinents
- demandé il y a 2 anslg...
- demandé il y a 5 moislg...
- demandé il y a 2 moislg...
- demandé il y a 2 anslg...
- AWS OFFICIELA mis à jour il y a 2 ans
- AWS OFFICIELA mis à jour il y a 2 ans
- AWS OFFICIELA mis à jour il y a 2 ans
- AWS OFFICIELA mis à jour il y a 3 ans