2014-03-24 91 views
-2

所以我想給node.js一個嘗試看看它有一個小測試聊天項目(與MySQL)的可能性我正在做。在哪裏運行node.js

但是我找不到的是從哪裏運行文件,最常見的是什麼。

我目前有:

  • 一個FreeBSD服務器與最新的節點和PHP 5.3.x
  • 一個虛擬主機
  • 如何與節點開始一些教程(我看了看,通過和得到退出約)
  • 如何從終端上運行,而不必讓我的終端開放的(屏幕)

到目前爲止知識不錯。

我需要什麼:

  • 的地方把一些基本信息(可以說:) chat.js文件。
  • 最合乎邏輯端口上

運行,使Web根目錄(WWW)上的用戶(非根明顯)運行。而且webroot有一個底層文件夾,我可以放置腳本(遠離遊客抓住小手)。在我看來,這是最安全的地方,讓人們無法看到它,這可能是我想要看到的,我將連接到一個數據庫,並且不希望我的數據庫登錄數據在那裏(我不喜歡不知道這是如何工作的,但我會在稍後找出db與節點的連接,不需要回答)。

但是,如果一個文件不在webroot中,在我看來,連接不能從外部進行。導致我的webroot被配置爲僅允許80(或443上的ssl)輸入流量,這是合乎邏輯的。顯然沒有問題。

我發現的所有例子都不能幫助我。他們只是在本地機器上做所有事情,這對我來說太糟糕了,因爲我不想那樣做。

所以我想什麼是最好的做法:

  • 凡把文件
  • 端口上運行它。
+1

節點不像PHP。你不需要Apache或者虛擬主機。它不會進入webroot。節點更像是Python - 它是它自己完全獨立的可執行文件。 – Kyros

回答

1

What is Node.js?

了很多混亂的新人到節點被誤解它到底是什麼。關於nodejs.org的描述絕對沒有幫助。

要認識到一個重要的事情是Node不是一個Web服務器。它本身並沒有做任何事情。它不像Apache一樣工作。沒有配置文件將其指向您的HTML文件。如果你希望它是一個HTTP服務器,你必須編寫一個HTTP服務器(藉助它的內置庫)。 Node.js只是在您的計算機上執行代碼的另一種方式。它只是一個JavaScript運行時。

一個很好的教程How to Deploy Node JS Applications, With Examples

你需要對端口9000(用於 阿帕奇您的非節點的應用程序,這將是/etc/apache2/ports.conf和你 網站 - 您的站點可用文件),並且您需要節點 應用程序在8080上進行監聽。您還需要爲將用於服務器的不同主機名設置DNS'A' 記錄。

像Heroku這樣的公司允許從桌面到雲自動部署應用程序。 Nodejitsu提供了一個名爲jitsu的工具,它使部署Node.js應用程序變得非常簡單。你可以用npm安裝jitsu。

npm install jitsu -g 

Heroku How To Getting started with jitsu

使用monit的,永遠的,暴發戶或systemd來啓動節點服務器。使用Varnish或HAProxy或Nginx(Nginx不適用於websockets)。

+0

[將Node.js應用程序部署到IBM BlueMix](http://joelennon.com/deploying-a-node-js-app-to-ibm-bluemix/) – Damodaran

0

最終你可以把它粘在你想要的任何地方。我建議使用Forever或類似的代碼直接使用Node來運行你的應用程序。我通常將我的應用程序保存在/ var /中,並讓每個應用程序都以獨特的用戶身份運行。我不建議將它們保留在你的http根目錄中,因爲你的.js文件不應該被Apache,php等解釋。

要清楚 - 你不需要傳統的web服務器,也不需要php, mySQL或其他任何東西。節點是你所需要的。它會直接提供內容 - 它是網絡服務器。

很多時候,每個應用程序都會使用高端口號(3000+),並使用NGINX將它們全部代理到不同於80端口的主機名(允許您在一臺機器上輕鬆地創建多個應用程序)。如果你不使用某種代理,那麼3000是非常默認的,但是沒有正確或不正確的端口,只要你不使用保留端口。

+0

所以要分解它: - 我不把它放在webroot中(但上面那個不受apache控制的是好的)。 - 我檢查了永遠,它看起來很像屏幕,所以兩者都會。 - 如果你沒有很多用戶,Nginx並不是必需的。 - 3000會很好。它是否正確? – Matt

+0

正確的問候Apache。永遠,不像屏幕,如果它崩潰,將重新啓動你的應用程序。是的,3000很好。 – Kyros