2011-10-03 58 views
5

我有一個VPS,我已經託管了幾個站點。全部基於LAMP堆棧,所以沒什麼大不了的。他們提供WHM/cpanel來管理不同的網站。我決定嘗試node.js,爲它購買了一個單獨的域,並且我需要一些線索來說明如何將該域指向node.js應用程序。僅在VPS上託管特定域的node.js

所以這裏的問題:

1)什麼是主機上的特定領域的Node.js應用程序,而不妨礙其他網站的最佳方式?我將如何配置域名?是的,我想爲節點使用默認的http端口(80)。

2)由於Apache已經在監聽80端口,因此使用Apache mod_proxy是一個好主意嗎?我的意思是如果我想使用websocket,apache是​​否仍然使用單獨的線程來維護與節點的連接?

PS。我已經看到this question,但答案似乎並不令人信服。


編輯:

我忘了說,我有一個未使用的專用IP爲VPS,我可以使用node.js中

+1

強烈建議讓這個獨立的VPS您的IP 。使用代理模塊會限制功能和性能。 – Fosco

+1

您可以在Heroku上快速啓動並運行一個節點應用程序,並將您的域指向Heroku應用程序實例,而不必擔心Apache代理。 http://devcenter.heroku.com/articles/node-js – mhoofman

回答

8

按照以下步驟

  1. 轉到「南國>>服務配置>> Apache的配置>>保留IP地址編輯器」,然後「保留」,您要使用node.js中的IP這將從apache發佈IP。

  2. 創建一個像一個進入新的DNS條目 - example.com A YOUR_IP_ADDRESS

  3. 告訴Node.js的服務器來監聽使用server.listen(80, "YOUR_IP_ADDRESS");

+0

listen()方法的主機參數可以是一個域,例如'server.listen(80,「example.com」)'? – snapfractalpop

+0

謝謝BRO!救了我的屁股..問題!!這是如何工作..我怎麼可以聽apache和nodejs端口80? –

+0

@RayGarner,no在第1步中,您將從Apache發佈IP。 Apache和NodeJS都不能在同一個端口上運行。這個例子是針對具有多個IP的VPS給出的。最初,即使你沒有使用它們,它們也是由Apache保留的。因此,使用這種方式,您可以釋放一個用於NodeJS的IP。 – Rifat

0

如果Apache已經在監聽端口80,那麼您唯一能做的就是代理您的節點實例。是的,Apache會爲每個連接創建一個新的線程。

0

正如其他人所說的那樣,在這裏你可以做的並不多。 Apache目前正在驅動你的服務器,node.js不會喜歡騎霰彈槍。

我建議檢查一下諸如nodester,no.de,herokuso on的東西。

+0

我編輯了這個問題。不會有一個單獨的IP消除代理的使用? – MHK

+0

你可以讓apache偵聽另一個IP上的一個IP和node.js,它們不會互相干擾。 – Eliasdx