2013-07-07 35 views
25

我有一個node.ja服務器listining到4000端口,訪問該服務的URL是這樣的:如何將域名分配給node.js服務器?

http://42.12.251.830:4000 

我買了一個域名

www.mychat.com 

我怎樣才能把它分配給我的服務器?首先我使用轉發,但是我再也無法使用location.hash將聊天頻道添加到URL中。然後我使用了Header-Redirect之類的東西。現在該服務可以在mychat.com下訪問,但不在www.mychat.com下。此外,域名不會顯示在瀏覽器窗口中。對於我的聊天頻道,我需要這樣的:

www.mychat.com/#238husd4 
+1

請參閱:http://stackoverflow.com/questions/5009324/node-js-nginx-and-now – neiker

回答

23

你不域分配到的node.js服務器,而不是你加載你的應用程序在其上有一個IP地址,而你的情況是42.12.251.830:4000的機器。然後,您需要確保您的app是正確的端口,這在大多數服務器是傾聽80

使用express它的那樣簡單

var app = express() 
    , server = require('http').createServer(app) 
    , io = io.listen(server); 

app.get('/', function(req, res) { 
    res.sendfile('./public/index.html'); 
}); 
server.listen(80); 

現在得到一個域名指向這個IP地址是一個完全獨立的問題。你需要讓你的name server指向ip。您的名稱服務器通常是您通過域名購買的公司,例如GoDaddy是域名服務器(DNS)。所以如果你有他們的域名,你會在他們的網站下的DNS設置,並更改IP地址。您的域名將指向您的IP地址,並呈現您的node.js應用程序。

+2

老問題。但我相信除此之外還有更多。由於端口80需要更高的權限,因此這不起作用。讓我的應用聽80端口只是給我一個不可用的網頁錯誤。 –

+0

是在本地機器上,該端口被阻止。嘗試端口3000或更高的東西。但在生產服務器上,你會想要使用80或443. – Loourr

+1

bt如何阻止其他域尋址到服務器IP地址? –