Node.js Exemplo de servidor da Web do Amazon EC2 - sem resultado

1

Se eu executar o exemplo básico de nodejs.org no meu Amazon EC2 Server, recebo a mensagem "Servidor em execução" no console. Mas se eu tentar abri-lo em um navegador, usando meu IP elástico + a porta, não obtenho resultado.

Acho que abri as portas TCP 22 e 1337 (não tenho 100% de certeza porque sou novo neste assunto).

    
por Christian Strang 31.01.2012 / 13:21

1 resposta

5

Presumivelmente, você quer dizer este exemplo:

var http = require('http');
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World\n');
}).listen(1337, "127.0.0.1");
console.log('Server running at http://127.0.0.1:1337/');

A mensagem que você teria recebido assim é Servidor em execução em http: // 127.0.0.1 : 1337 / - a parte enfatizada é a chave aqui, ou seja, o servidor foi configurado para escutar o endereço IP 127.0.0.1 (também conhecido como localhost ), enquanto você está tentando navegar através dele o seu endereço IP elástico.

Assim, você pode atingir seu objetivo substituindo 127.0.0.1 na declaração listen() pelo endereço IP privado / interno que foi atribuído à sua instância do EC2.

Variações

Como alternativa, você pode usar o nome DNS público / externo, que exibe uma resolução de endereço IP dinâmico menos conhecida, dependendo da origem da consulta DNS. Por que eu tenho dois endereços IP e dois nomes de host? :

The external DNS name (which looks like ec2-72-44-45-204.compute-1.amazonaws.com) resolves to the public IP address of the instance outside the Amazon EC2 network and the private IP address from within Amazon EC2 network.

Finalmente (de acordo com o comentário do cyberx86, obrigado!), você pode ser capaz de omitir o parâmetro opcional address (mas veja abaixo), veja server.listen (porta, [hostname], [callback]) :

If the hostname is omitted, the server will accept connections directed to any IPv4 address (INADDR_ANY).

Esteja ciente, porém, de que isso nem sempre é a coisa certa em cenários avançados, na medida em que pode haver mais de uma interface de rede disponível após a recente introdução de Elastic Network Interfaces (ENI) na Virtual Private Cloud (VPC) , que é dando-lhe a capacidade de criar ENIs adicionais e de anexar um segundo ENI a uma instância (mais uma vez, isto é dentro do VPC) .

    
por 31.01.2012 / 13:41