簡體   English   中英

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

[英]How do i get node.js express.js on port 80

您好我試圖在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);

更新:網絡有一個龐大的防火牆

你是以root身份運行的嗎? 或者至少有權使用端口80? 在Linux系統上,您需要特殊的用戶權限才能使用1024或更低端口。 嘗試使用sudo node ...以root身份運行sudo node ...

您正試圖從另一台計算機訪問? 如果是,則綁定到地址0.0.0.0而不是locahost

將應用程序綁定到0.0.0.0意味着它應該可以從計算機外部訪問(即綁定在所有接口上)。 綁定到localhost限制服務在本地可訪問。

要確認您的應用程序內部工作,請嘗試:

wget -O - http://127.0.0.1/

...在運行Web服務器的同一台計算機上。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM