
1.3 Node部署环境
学习Node时,你可能更想在自己的本地环境中熟悉它,无论是Windows、OS X还是Linux。当你想让更多的人访问你的程序时,你将需要:找到一个可以运行Node程序的环境,例如我自己正在使用的虚拟专用网络(VPN),或者一个可以提供Node支持的主机。前者要求你在运行一个面向互联网的服务器方面具有一定经验,而后者可能会限制你所使用的Node程序的权限。
1.3.1 将Node部署在你的服务器、VPS或者托管主机上
把Node应用部署在和WordPress一样的机器上是行不通的,因为Node有特殊的权限需求。虽然没有root或管理权限也可以运行Node,但最好有。此外,许多托管公司并不喜欢让你在多个端口上托管(host)应用,不论它会不会对其系统造成破坏。
在虚拟专用服务器(VPS)(例如我在Linode上的VPN)上部署Node,是一件很简单的事情。你的VPS具有root访问权限,只要你不危及可能位于同一机器上的其他用户,就可以做任何操作。提供VPS的大多数公司都能确保每个个人账户与其他账户隔离,也没有任何一个账户能够占用所有可用的资源。
但是,使用VPS的问题与你使用自己的服务器时所遇到的问题相同:你必须维护服务器,包括设置电子邮件系统和别的Web服务器——通常是Apache或Nginx——来处理防火墙、其他安全性问题以及电子邮件等。这可不是小问题。
不过,如果你有能力全面地管理一个互联网主机,VPS足以用来部署Node程序了。在你准备好将程序部署到产品环境之前,你可能会想要了解一下如何在云端环境部署应用程序。
1.3.2 云部署
如今,一个应用程序运行于云服务器,和运行在个人或群组计算机上一样常见。Node程序非常适合基于云端的实现方式。
当你在云上部署Node应用程序时,你通常需要在自己的服务器或PC上创建应用程序,进行测试,确保它一切正常,然后将应用程序推送到云服务器。Node的云服务器允许你使用任何数据库系统或其他系统的资源创建Node应用程序,但无须直接管理服务器。你可以专注于Node应用程序,而无须担心FTP、电子邮件服务器或一般服务器的维护。
Git和GitHub:Node部署的前提
如果你从未使用过Git源码控制系统,则需要将其安装到你的环境中并学习如何使用它。几乎所有Node应用程序的转换,包括将应用程序推送到云服务器,都是通过Git进行的。
Git是开源和免费的,并且易于安装。你可以通过访问Git网站来获取这个软件。在GitHub上还有一个互动指南,可以用来学习基本的Git命令。
说到Git,哪里有Git,哪里就有GitHub。Node.js的源代码就是维护在GitHub上的,大部分(也可能是全部)可用的Node模块也是一样。本书例子的源代码也可以在GitHub上找到。
GitHub可能是世界上最大的开源代码库。它绝对是Node世界的中心。它是一个商业化公司,但对大多数用户来说都是免费的。GitHub提供了很好的文档,帮助用户了解如何使用该网站。还有一些书籍和其他教程,可以帮你更快上手Git和GitHub。其中包括一本免费的Git电子书、Loeliger和McCullough的《Git版本控制》(O’Reilly)以及Bell和Beer的《GitHub入门》(O’Reilly)。
在云服务上托管Node应用程序的流程,对于所有云服务来说都非常相似。首先,在本地或在自己的服务器上创建Node应用程序。当你准备开始测试部署环境时,就需要寻找一个云服务了。我熟悉的云服务大多会要求你注册一个账户,创建一个新项目,如果云服务提供很多种托管软件环境的话,你还可以指定一个基于Node的环境。需要的话,你还可以指定一些其他资源,例如数据库访问。
一旦准备好部署,你就需要把应用程序推送到云上。你可以使用Git来推送应用程序,也可能需要使用云服务商提供的工具。举个例子,微软Azure云利用Git将应用程序从本地环境推送到云端,而Google的Cloud Platform则提供了一个工具来提供相同的功能。
![]()
寻找合适的托管服务
虽然可能有些过时,但是刚开始寻找合适的Node托管服务的时候,可以去看看GitHub的相关页面。