您好,我正嘗試在Ubuntu 12.04.2上的端口80上運行我的node.js webserver。這臺機器是一個乾淨的安裝,我唯一安裝的是openssh-server nodejs和screen。當我在端口80上運行節點webservice時,我可以導航到瀏覽器並輸入localhost,我將查看我的網站。但是,當我嘗試從另一臺機器訪問該網站時,我超時了。然而,我可以SSH和PING機器。我如何設置Ubuntu,使我的node.js應用程序服務於我的網站。該網站工作得很好,當我把它放在我的筆記本電腦上(Windows 7)和一臺不同的筆記本電腦通過我的IP地址訪問該網站。如何獲取端口80上的node.js express.js
我不想運行Apache或nginx。無論如何要做到這一點?
//---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:網絡上有一個巨大的防火牆
yes即時運行sudo節點webservice.js – Jareddlc
理想情況下,您不希望以root用戶身份運行服務器,而是使用特權用戶,以便如果存在安全漏洞(如未處理的注入),違規用戶不會在主機上沒有根。 –