2012-01-18 247 views
4

我有一臺運行在我的ubuntu服務器上的apache web服務器。最近,我試圖學習JavaScript,並偶然發現了node.js。我想創建一些Web應用程序多人遊戲,並且我已經瞭解到node.js可以派上用場。我在配置時遇到了一些問題。我將如何去在同一臺機器上運行Apache服務器和node.js?如果node.js上的應用程序位於不同的端口上,並且必須通過鍵入websitename:portNumber來訪問,我不介意。我不太關心性能優勢/劣勢,我只想借此機會嘗試JavaScript和node.js.是否有任何文件需要修改?在端口80以外的端口上運行node.js

下面是我對在服務器上運行腳本的代碼(僅將其用於試驗目的現在):

var http = require('http'); 

http.createServer(function (req, res) { 
     res.writeHead(200, {'Content-Type': 'text/plain'}); 
     res.end('Hello World\n'); 
    }).listen(1337); 

我開始服務器(節點fileName.js)。但是,當我嘗試使用網絡上的另一臺客戶端計算機訪問它時,似乎無法正常工作,因爲該頁似乎不存在。

當我訪問端口1337上的服務器時,我可以將Hello World輸出到我的瀏覽器的過程是什麼?

+0

確保端口'1337'未被任何類型的防火牆阻塞(例如,亞馬遜的EC2安全組),並且如果您位於路由器後端口正確轉發。 – wsanville 2012-01-18 02:32:18

+0

你的例子正在工作,好像你要阻塞端口1337或在另一臺計算機上輸入錯誤的ip。 – bennedich 2012-01-18 02:33:42

回答

6

嘗試做這樣的:

http.createServer(function (req, res) { 
    res.writeHead(200, {'Content-Type': 'text/plain'}); 
    res.end('Hello World\n'); 
}).listen(1337, "your-adapter-ip"); // don't forget adapter IP 

然後從網絡點您的瀏覽器http://your-adapter-ip:1337
確保防火牆在該端口上打開。

+2

或'0.0.0.0'代替IP在任何接口上偵聽 – 2012-01-18 03:39:06

0

您應該可以從其他客戶端計算機瀏覽到http://your_ubuntu_server_ip:1337

你能從另一臺電腦到達apache web服務器嗎?如果是這樣,你可以停止Apache,修改你的代碼使用80端口,然後再試一次。