2010-07-08 14 views
2

Je suis installation Node.js sur Amazon EC2 avec ubuntu 8.04 et et ont couru node sayhello.js qui est ce code:Node.js installer sur Amazon EC2

var sys = require('sys'), 
    http = require('http'); 
http.createServer(function (req, res) { 
    setTimeout(function() { 
    res.writeHead(200, {'Content-Type': 'text/html'}); 
    res.write('<br/><strong>&nbsp;&nbsp;&nbsp;&nbsp;Hello World!</strong>'); 
    res.end(); 
    sys.puts(sys.inspect(req, false)); 
    }, 2000); 
}).listen(8000); 
    sys.puts('Server running at http://ec2-174-12-132-193.compute-1.amazonaws.com:8000/'); 

Je vois

Serveur s'exécutant à http://ec2-174-12-132-193.compute-1.amazonaws.com:8000/

étant correctement affiché dans la console.

Le tutorial dit: aller à: 8000 dans le navigateur et vous devriez voir Hello World!

Je vais à http://ec2-174-12-132-193.compute-1.amazonaws.com:8000/ (pas la vraie adresse) mais il ne charge pas (il suffit de se connecter ...). L'exemple utilise localhost, fait le domaine public incorrect ou un tel?

Merci.

Répondre

4

Dans le groupe de sécurité associé à l'instance EC2, assurez-vous que le port 8000 est ouvert sur votre adresse IP ou sur le public.

6

Vous devez ouvrir le port 8000 dans votre groupe de sécurité.

Si vous avez les outils de ligne de commande EC2 installé, essayez d'exécuter:

$ ec2-authorize default -p 8000 

Cela suppose que vous utilisez le par défaut groupe de sécurité. Si ce n'est pas le cas, remplacez par défaut par le nom de votre groupe de sécurité.

Si vous êtes juste en utilisant l'interface web procédez comme suit:

  1. Connectez-vous à la console AWS
  2. Sélectionnez Amazon EC2 dans la barre supérieure
  3. Cliquez sur Groupes de sécurité dans le menu à gauche
  4. cliquez sur le groupe de sécurité que vous avez attribué à votre instance EC2 (probablement par défaut seulement)
  5. Dans le volet de fenêtre du bas, cliquez sur le entrant onglet
  6. Set gamme Port:-8000 et laisser les deux autres entrées comme ils sont
  7. Cliquez sur Ajouter une règle
0

Vérifiez les points suivants:

  1. Que vous permettez accès de tous les ips au port 8000 du groupe de sécurité
  2. Que vous ayez modifié le groupe de sécurité CORRECT (par exemple, quicklaunch-1) et pas, disons, quicklaunch-2. J'ai modifié la mauvaise fois de plus que je ne veux l'admettre.Si vous avez ouvert le port 8000 sur le pare-feu Linux
  3. Que votre serveur est en cours d'exécution (vous devriez voir "Listening on port 8000" dans la ligne de commande).

Voici un tutoriel sur la façon de configurer un serveur web Node.js sur Amazon EC2: http://www.lauradhamilton.com/how-to-set-up-a-nodejs-web-server-on-amazon-ec2

Il est un peu plus compliqué que ce que vous faites (car il utilise la transmission IP de 80 à 8080) mais la partie relative à l'ouverture du pare-feu Linux est la même.