2016-03-22 4 views
0

Ich betreibe einen Apache und Ubuntu-Server auf aws.Warum funktioniert die Datei node.js nicht mehr, wenn ich der Datei einen Hostnamen hinzufüge?

Die beiden folgenden Dateien laufen, aber wenn ich auf den Server zugreifen, gibt nur die oberste Helloworld zurück. Warum das?

var http = require('http'); 

var port = 3000; 

var server = http.createServer(function(req, res) { 
    console.log(req.headers); 

    res.writeHead(200, { 'Content-Type': 'text/html' }); 
    res.end('<h1>Hello World</h1>'); 
}); 

server.listen(port); 

Die unteren Läufe Datei wird aber nicht, wenn ich den Server traf ich einen Fehler. Ich habe versucht, Hostnamen durch die IP des Servers zu ersetzen, ich habe auch versucht, den Hostnamen 127.0.0.1 zu machen, der auch nicht funktionierte. Der Fehler, den ich bekomme, ist

"This site can't be reached, <ip> refused to connect, ERR_CONNECTION_REFUSED" 

ist die IP des Servers.

var http = require('http'); 

var hostname = 'localhost'; 
var port = 3000; 

var server = http.createServer(function(req, res) { 
    console.log(req.headers); 

    res.writeHead(200, { 'Content-Type': 'text/html' }); 
    res.end('<h1>Hello World</h1>'); 
}); 

server.listen(port, hostname); 

Prost

+0

Welches Problem versuchen Sie zu lösen, indem Sie das Argument 'hostname' einbeziehen? Sie können es einfach weglassen und dann reagiert Ihr Server auf alle eingehenden Anfragen an diesen Server am angegebenen Port. Wenn Sie 'localhost' oder' 127.0.0.1' verwenden, können natürlich nur Verbindungen von derselben Box mit dieser übereinstimmen. – jfriend00

+0

Ich habe es funktioniert, indem ich Hostnamen entfernen danke. Der Grund, warum ich es hatte, war, weil ich einem Tutorial online folgte und der Typ von seinem lokalen Rechner aus arbeitete. Anfangs habe ich den Hostnamen weggelassen, aber ich bin auf Fehler gestoßen, daher habe ich versucht, beides hinzuzufügen/zu entfernen. Ich glaube, ich habe Fehler gemacht, als ich es entfernte, weil es immer noch nicht funktionieren wollte. Der Grund, warum ich es hinzugefügt habe, war, weil ich woanders auf stackOverflow gelesen habe, dass ich es hinzufügen sollte. Ich habe es offensichtlich falsch verstanden. Danke für deinen Kommentar, es war ein großer Helfer. –

Antwort

3

Wenn Sie auf localhost hören, müssen Sie die Anfrage von der gleichen Maschine/Server und nicht von außen machen.

+0

Wie kann ich eine Anfrage von der gleichen Maschine machen. Ich verbinde mich mit Aws durch Kitt. Wenn ich ein anderes Fenster von Putty öffne und "curl " eintippe, funktioniert es nicht. Wenn ich den localhost-Parameter entferne, würde es funktionieren. –

+0

Sie müssen wahrscheinlich 'localhost' verwenden, wenn Sie die Anfrage lokal auf demselben System stellen, da ich glaube, dass Amazon IPs nicht direkt Interfaces auf Instanzen zuweist? – mscdex

Verwandte Themen