2014-03-24 61 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