我如何在端口80上获得node.js express.js

Jar*_*dlc 8 node.js express ubuntu-12.04

您好我试图在Ubuntu 12.04.2上的端口80上运行我的node.js webserver.这台机器是一个干净的安装,我唯一安装的是openssh-server nodejs和screen.当我在端口80上运行节点webservice时,我可以导航到浏览器并输入localhost,我将查看我的站点.但是,当我尝试从不同的机器访问该网站时,我得到了超时.然而,我可以SSH和PING机器.如何设置ubuntu以便我的node.js应用程序服务于我的网站.当我将它托管在我的笔记本电脑(Windows 7)上时,该网站工作得很好,而另一台笔记本电脑通过我的IP地址访问该网站.

我不想运行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);
Run Code Online (Sandbox Code Playgroud)

更新:网络有一个庞大的防火墙

Mor*_*len 11

你是以root身份运行的吗?或者至少有权使用端口80?在Linux系统上,您需要特殊的用户权限才能使用1024或更低端口.尝试以root身份运行sudo node ...