2014-11-01 81 views
1

我正在這裏進入新的領域。不是一個Linux人,但我從我的託管公司Ubuntu 12.0.4運行apache2獲得了一個專用服務器。我有我的域名成功解析到該服務器(基本HTML'Hello World'索引頁顯示正常)。ubuntu上的nodejs默認文檔

我已經安裝了npm,node和express,它們(據我所知)工作正常。我已經添加了這個應用程序的根爲「hello.js」:

var express = require('express'); 
    var app = express(); 

    app.get('/', function(req, res){ 
    res.write("Hello World"); 
    res.end(); 
    }); 

    app.listen(process.env.PORT, function(){ 
    console.log("Server Started"); 
    }); 

後我膩子(任期?)並運行「節點hello.js」我得到的「服務器已啓動」的消息。但是當我進入我的域時沒有結果。如果我有一個index.html頁面,我會得到它的內容。如果我刪除它,我會得到一個dir列表。

如何使hello.js的網站默認文檔?或者更一般地說,如何設置入口點以使用此配置在lve服務器上運行節點站點?我可以編寫節點,但部署將比預期難得多。誰能幫忙?

+1

什麼是'process.env.PORT'?通過'console.log(process.env.PORT)'找出。也許你需要'app'listen('***'80' ***',function ...' – laggingreflex 2014-11-01 04:58:47

回答

1

你看到的是擊中Apache的結果。不是你的Node.js服務器。

嘗試在命令行啓動服務器這樣的:

$ PORT=8080 node hello.js 

然後將瀏覽器指向:

http://www.youdomain.com:8080/ 

,將開始在8080端口上的第一個參數你的node.js過程到app.listen是process.env.PORT這是一個環境變量,您可以通過上面的命令在命令行上設置。

只要在服務器和本地計算機之間的防火牆中沒有阻止端口8080,就應該可以工作。

如果您希望Node.js在標準端口80上爲您的整個網站供電,那麼您需要先禁用Apache或將其設置爲反向代理。

+0

當然,我想弄清楚的是如何讓節點處理某些文檔/站點的請求。我是linux/apache的noob,但是明白這是一個非常困難的事情。Node在站點上運行(控制檯在啓動服務器時響應)。如何獲得路由到節點的請求到apache? – user2925994 2014-11-01 03:24:20

+0

Ooops!您的評論只有第一行時,我刷新,對不起! – user2925994 2014-11-01 03:27:05

+0

但是,我想節點爲整個網站提供動力(我首先獲得服務器的原因,我基本上想要一個活的沙箱)。你會推薦哪種路由,禁用apache或反向代理服務器? – user2925994 2014-11-01 03:31:28