/ / Jak uzyskać plik node.js express.js na porcie 80 - node.js, express, ubuntu-12.04

Jak uzyskać plik node.js express.js na porcie 80 - node.js, express, ubuntu-12.04

Witaj Próbuję uruchomić mój węzeł.js webserver na porcie 80 na Ubuntu 12.04.2. To urządzenie jest czystą instalacją i jedyną rzeczą, którą zainstalowałem jest opensh-server nodejs i screen. Kiedy uruchomię usługę sieciową węzła na porcie 80, mogę przejść do przeglądarki i wpisać localhost, a ja obejrzę moją witrynę. Jednak, gdy próbuję uzyskać dostęp do witryny z innego komputera, upłynie limit czasu. Mogę jednak SSH i PING maszynę. Jak mogę skonfigurować Ubuntu, aby moja aplikacja node.js wyświetlała moją witrynę. Witryna działa dobrze, gdy hostuję ją na moim laptopie (Windows 7), a inny laptop uzyskuje dostęp do strony przez mój adres IP.

Nie chcę uruchamiać Apache ani nginx. Czy jest to mimo wszystko?

    //---ExpressJS
console.log("Initializing Express...");
var express = require("express");
var app = express();

//---Middleware: Allows cross-domain requests (CORS)
var allowCrossDomain = function(req, res, next){
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Methods", "GET,PUT,POST,DELETE");
res.header("Access-Control-Allow-Headers", "Content-Type");
next();
}

///---MemoryStore
//var MemoryStore = express.session.MemoryStore;

//---App config
app.configure(function() {
var pub_dir = __dirname + "/public";
app.set("views", __dirname + "/views");
app.set("view engine", "jade");
app.set("trust proxy", true);
app.use(express.favicon(__dirname+"/favicon.ico"));
app.use(express.compress());
app.use(express.bodyParser());
app.use(express.cookieParser());
app.use(express.session({secret: "cogswell"}));
app.use(express.methodOverride());
app.use(allowCrossDomain);
app.use(app.router);
app.use(express.static(__dirname));
});

//---Start listening
var port = 80;
app.listen(port);
console.log("Webservice started on port: "+port);

UPDATE: sieć ma masową zaporę ogniową

Odpowiedzi:

10 dla odpowiedzi № 1

Czy pracujesz jako root? Lub przynajmniej mieć pozwolenie na użycie portu 80? W systemach Linux wymagane są specjalne uprawnienia użytkownika do korzystania z portu 1024 lub niższego. Spróbuj uruchomić jako root przy użyciu sudo node ...


0 dla odpowiedzi nr 2

Próbujesz uzyskać dostęp z innego komputera? Jeśli tak, to powiąż adres 0.0.0.0 zamiast locahost.

Wiązanie wniosku do 0.0.0.0 oznacza, że ​​powinien być dostępny spoza komputera (tj. związany na wszystkich interfejsach). Wiążące do localhost ogranicza usługę do lokalnego dostępu.

Aby potwierdzić, że aplikacja działa wewnętrznie, spróbuj:

wget -O - http://127.0.0.1/

... na tym samym komputerze, na którym działa serwer sieciowy.