web-dev-qa-db-fra.com

Impossible d'accéder au site sur l'instance EC2 via une IP publique

J'expérimente avec EC2 depuis quelques jours et je me suis cogné la tête contre le fait même de pouvoir accéder à l'exemple de site que j'ai hébergé. La pile est Rails 3.1.3 avec Thin et Nginx.

J'ai essayé plusieurs configurations différentes et j'ai finalement exécuté le script d'installation automatique de Nginx, qui renvoie une page Web lorsque je fais une boucle http: //ec2-107-20-143-179.compute-1. amazonaws.com/ . Cependant, lorsque je pointe mon navigateur là-bas, il se bloque pour toujours avant de dire que la page est introuvable.

J'ai attribué une adresse IP élastique et j'ai activé l'accès HTTP via le port 80.

Je n'ai pas beaucoup d'expérience avec le côté administrateur système et je suis fondamentalement perplexe à ce stade. Tout avis serait grandement apprécié.

59
primer

Avez-vous activé le port http pour tous les IPS? Cela se ferait en allant à:

EC2 -> Groupe de sécurité -> Par défaut (ou votre client personnalisé) -> Entrant

Et puis créez une nouvelle règle pour HTTP et en tant que source, vous devez attribuer: 0.0.0.0/0

Ça devrait le faire.

115
Deleteman

Je pense que l'interface utilisateur AWS a peut-être été mise à jour, mais sur la base de la réponse de Deleteman

  • Connectez-vous au tableau de bord EC2
  • Instances> Instances
  • Liste déroulante Actions> Réseau> Modifier les groupes de sécurité
  • Vous verrez probablement que vous n'avez que launch-wizard-1 autorisé, ce qui pour moi ne permettait que l'accès SSH sur le port 22

Donc, comme le mentionne Deleteman, vous devrez peut-être modifier vos groupes de sécurité ...

  • Connectez-vous au tableau de bord EC2
  • Réseau et sécurité> Groupes de sécurité
  • Supprimez tous les filtres qui peuvent se trouver dans la zone de recherche pour afficher tous les groupes
  • Personnellement, j'ai édité le groupe de sécurité VPC par défaut car c'est un sandbox pour moi, j'imagine que vous voudrez créer un groupe de sécurité pour votre projet
  • Cochez la case du groupe de sécurité, sélectionnez la liste déroulante des actions et cliquez sur "modifier les règles entrantes", j'ai utilisé les règles entrantes suivantes juste pour être sûr que tout fonctionnait

Rules

  • Lorsque vous revisitez Instances> Instances> Description, vous devriez voir les groupes de sécurité et les règles

enter image description here

  • Une fois que vous êtes satisfait que cela fonctionne, je remplacerais probablement tout le trafic par HTTP et HTTPS si c'est tout ce qui est nécessaire
37
Carlton

J'étais ici plus tôt à la recherche d'une solution à un problème similaire que j'avais. Il s'avère dans mon cas que l'instance EC2 avait également son propre pare-feu fonctionnant en plus du groupe de sécurité EC2. La commande "system-config-firewall" m'a permis d'entrer pour ouvrir les ports. Les ports 80 (HTTP) et 3306 (MySQL) n'étaient pas ouverts par défaut. 22 (SSH) était ouvert. J'ai aussi dû faire 'yum install system-config-firewall'.

Pour résumer, ma solution était:

> yum install system-config-firewall
> system-config-firewall
25
Octopus

Cette réponse s'adresse aux débutants qui n'ont aucune idée de ce qu'ils font avec une instance ec2.

J'avais le même problème et j'ai essayé tous les correctifs du groupe de sécurité en vain.

En fait, je devais allumer mon serveur à partir de la ligne de commande.

Sudo service httpd start 

Parfois, il fait sombre, non pas parce qu'un fusible a sauté, mais parce que vous n'avez pas actionné l'interrupteur.

19
user156439

Je luttais également avec le même problème, j'avais également créé un groupe de sécurité, mais je ne m'étais pas appliqué à l'instance. Créez simplement une nouvelle règle pour http. Et appliquez à partir de l'instance de clic droit et choisissez le groupe de sécurité et attribuez-le.

7
jbmyid

La réponse d'Octopus était la bonne pour moi, sauf pour une machine Windows. Je devais aller au pare-feu Windows, bloquait tout le trafic hors de la VM si elle ne correspondait pas à une règle. Le port 80 n'était pas activé dans une règle, donc je devais simplement ajoute un.

3
David

Très stupide de ma part car j'ai oublié d'installer serveur Web (serveur HTTP) à cause duquel mon IP publique d'instance ec2 ne fonctionnait pas. Répondre à cette question car cela peut aussi être l'une des raisons à ne pas manquer comme moi.

Vous pouvez installer soit,

nginx:

Sudo apt-get install nginx

Apache2:

Sudo apt-get install Apache2
1

J'ai eu le même problème, me creusant le cerveau depuis que je n'ai aucune expérience avec Ubuntu ou Linux. La réponse de Parag l'a corrigé.

Très stupide de ma part car j'ai oublié d'installer un serveur Web (serveur HTTP) à cause duquel mon IP publique d'instance ec2 ne fonctionnait pas. Répondre à cette question car cela peut aussi être l'une des raisons à ne pas manquer comme moi.

Vous pouvez installer soit,

nginx:

Sudo apt-get install nginx

Apache2:

Sudo apt-get install Apache2
0
user8212792