2017-01-31 182 views
0

我有一個在本地機器上運行良好的NodeJs應用程序。在虛擬服務器機器上部署NodeJS的問題

現在,我想將它部署到具有給定IP和給定http地址的虛擬機上。

假設我的情況是,IP和服務器的HTTP地址分別爲134.00.00.00http://server-virtualmachine.is.fr

我能夠通過ssh連接到該服務器併發送我的節點JS應用/無功/網絡/

服務器的主文件是app.js所以我執行該下面的命令行運行服務器。

node app.js 

輸出是:

App listening on port 3030 with adress 134.00.00.00 

我沒有任何錯誤。然而,在http://134.00.00.00:3030http://server-virtualmachine.is.fr:3030直接在我的瀏覽器檢查時,接頭是不成立的,我的瀏覽器終於​​通過顯示此消息結束了:

134.00.00.00 took too many times to answer 

如果我要去的地址,而無需編寫端口(http://134.00.00.00 ),我有以下消息:

Not Found 
The requested URL/was not found on this server. 

然後,爲了看到問題出在哪裏,我試着設置一個hello world示例文件。

var http = require('http'); 
http.createServer(function (req, res) { 
    res.writeHead(200, {'Content-Type': 'text/plain'}); 
    res.end('Hello World\n'); 
}).listen(3030, '134.00.00.00'); 
console.log('Server running at 134.00.00.00:3030'); 

出現同樣的問題。但是,我打開一個新的標籤,並打開一個新的SSH連接並執行以下命令行:

curl http://134.00.00.00:3030 

措手不及,我有我的終端上"Hello world"

我不是真的到服務器,我嘗試自己理解,但現在我不理解這個問題以及如何解決它。

我想讓我的NodeJs應用程序在虛擬機上工作,而不是在本地機器上工作。

任何見解?

非常感謝您的幫助。

+0

3030端口是否打開? –

+0

它應該是因爲一箇舊的Node Js-Angular JS項目在此虛擬機上使用此端口之前工作。我如何檢查它是否開放?否則有沒有辦法查看哪個端口打開?感謝 – lilouch

+1

您可以在防火牆設置中檢查它。或者使用'nmap'命令 –

回答

0

感謝Ebrahim Pasbani,我可以看到我的3030端口沒有打開。爲了確認,我用以下命令行:

nmap ip 

更具體nmap -p3030 ip

我打開了它,現在它的工作原理。