2016-02-25 27 views
0

我試圖設置一個簡單的「Hello world」node.js應用程序。如何在瀏覽器中訪問遠程node.js應用程序,而不是在本地主機

我創建了以下index.js文件:

var app = require("express")(); 
var http = require("http").Server(app); 

app.get("/", function(req, res){ 
    res.send("<h1>Hello worlddddd</h1>"); 
}); 

http.listen(8080, function(){ 
    console.log("listening on *:8080"); 
}); 

當我打開本地控制檯,並執行node index.js,我得到的消息「監聽*:8080」,符合市場預期。我將瀏覽器指向localhost:8080,並根據需要看到HTML頁面顯示「Hello worlddd」。

現在,我試圖做同樣的我的虛擬專用服務器上,這樣我就可以從不同的計算機訪問相同的應用程序,但我得到的是連接超時。我已經按照下列步驟操作:

  • 通過npm install --save [email protected]
  • 我的VPS安裝的node.js
  • 安裝快遞上傳我的index.js文件到我的IP 192.123.123.12服務器上的文件夾var/www/html(一例如,這不是我的真實IP)。
  • 訪問PuTTY通過服務器,並運行node index.js,在那裏我得到"listening on *:8080",所以我知道Node.js的工作。
  • 現在我將瀏覽器指向http://192.123.123.12:8080,經過大約20秒後,我收到瀏覽器錯誤消息:「連接超時」。
  • 我試着聽端口:80代替,但我得到這個端口已被使用的錯誤。

有誰知道我做錯了嗎?我使用錯誤的端口?我是否指向錯誤的網址?我需要修改我的服務器首選項嗎? (在CentOS上運行Apache)。我只找到了幾十個教程,教你如何在本地計算機上運行node.js應用程序(將瀏覽器指向localhost:8080),但我需要它運行在遠程服務器上,以便多臺計算機可以訪問應用程序。

+0

你需要找到特定的文檔以您的VPS運行的node.js服務器應用程序以及如何配置輸入端口,以及是否長時間運行的服務器(如的NodeJS)的支持。這不是通用說明,但可能涉及您自己的託管服務的特定配置。 – jfriend00

+0

哦,謝謝!那麼預計不會直接開箱即用?也許我的託管服務提供商的客戶服務中心可以幫忙。 – Marquizzo

+0

可能只是一些(默認)過濾正在阻止連接到其他預定義端口的端口。或者,如果您與其他主機共享IP,則可能會更復雜一些。 – jcaron

回答

2

問題是您的當前過濾器(iptables)會阻止流量,除非您明確允許它。

你只需要打開TCP端口8080入站,你應該能夠到達你的node.js服務器!

+1

,並且對於任何試圖查看這是否是問題的人,只需嘗試telnet到該端口上的服務器,例如, 'telnet myserver.com 8080'。如果您收到一條說明您已連接的消息,則該端口已打開。 –

相關問題