Node.js 是一个开源平台,可帮助 JavaScript 用户在 Web 浏览器之外执行他们的代码。这是一个免费的解决方案,几乎可以在任何操作系统上运行。在托管方面,VPS 服务器提供了一个完美的环境,可以将 Node.js 应用程序与开发人员工具和 API 集成。让我们看看在托管和自我管理的 VPS 服务器上使用Node.js 需要做什么。
什么是 Node.js?
Node.js 是一个跨平台、事件驱动的JavaScript 运行时环境。它建立在 Chrome 的 V8 JavaScript 引擎以及MongoDB、Express.js 和 AngularJS 等其他开发框架之上。Node.js 允许您使用 JavaScript 创建负责许多核心功能的 Web 服务器、网络工具和模块。
由于 Node.js 仅适用于 JavaScript,因此更容易为广大开发者社区所用。同时,其模块使用的 API简化了编写服务器应用程序的过程。
虽然你可以在没有它的情况下运行你的 NodeJS 应用程序,但专家建议安装npm ——Node.js 的官方包管理器。它由一个客户端和一个包含超过 100 万个免费和付费包的在线数据库(npm 注册表)组成。多亏了 npm,来自世界各地的开发人员可以利用大量现成的资源来帮助他们加快开发过程。
为什么选择 Node.js?
Node.js 带来了许多优势。一方面,它已经是一个闪电般快速的脚本环境,而且由于它建立在Google 的引擎之上,它的性能可能会随着时间的推移而提高。npm 注册表也在扩展,因此开发人员将来可能会更容易找到他们正在寻找的东西。
不过,速度远非 Node.js 唯一出名的地方。在 Internet 上阅读它,您会发现大多数人都在广泛谈论它的异步、事件驱动架构。
让我们仔细看看它,看看开发人员如何从中受益。
要了解它的工作原理,我们需要将其与其中一种替代方案进行比较。世界上几乎 80% 的网站都使用 PHP,因此我们将使用它作为示例。如果 PHP 应用程序被要求打开一个文件,它在打开该文件之前不会处理任何其他请求。所有后续请求都取决于第一个请求的执行。
相比之下,Node.js 的架构是异步的,这意味着可以同时处理多个请求。一个请求不需要等待另一个请求的执行,内容交付效率更高。因此,使用 Node.js 创建的应用程序快速、健壮且易于扩展。鉴于这一切,IBM、LinkedIn、Netflix 和 PayPal等科技巨头在其部分产品的开发过程中使用 Node.js 也就不足为奇了。
Node.js 用于什么?
Node.js 自 2009 年以来就已经存在,与其他Web 技术相比,时间并不长。尽管如此,它已经证明了它作为一个强大的开发框架的价值,在许多不同的领域有数十种用途。
这里是它最闪耀的地方:
聊天应用
高效交付动态内容的能力,加上用于实时 Web 应用程序的 JavaScript 库的存在,使 Node.js 非常适合开发出色的即时消息服务。
浏览器游戏
HTML5和其他技术的发展意味着您现在可以创建出色的基于浏览器的游戏,而无需依赖可怕的 Flash 动画。Node.js 是最好的新选择之一。
流媒体应用
再一次,Node.js 的异步 I/O 使流媒体服务能够同时向数十万用户提供实时、高质量的视频。
后端工具
JavaScript 主要与前端开发相关,但事实是,有一些 JS 库使开发人员能够使用 Node.js 创建快速可靠的命令行应用程序。
Node.js 系统要求
Node.js 的轻量级设计是它在开发人员中如此受欢迎的原因之一。你必须记住,如果你想在 Windows 上使用 Node.js,你将需要相当强大的硬件。但是,对于 Linux,资源使用率非常低,您甚至可以在Raspberry Pi上运行标准的Node.js 应用程序。
有ARM 和 64 位架构的 Linux 版本,在 Windows 上,它可以在 32 位和 64 位机器上运行。macOS 服务器需要 64 位芯片来运行 Node.js,并且还有一个 Docker 容器的官方镜像。总而言之,Node.js 可以在大多数现代设置上运行。
安装 Node.js 和 npm
因为它适用于许多不同的操作系统和设置,所以没有一种万能的教程可以向您展示安装 Node.js 的确切步骤。大多数网络托管 VPS 服务器 都在 Linux 上运行,因此我们将重点关注它。然而,即使有了它,安装过程也会因发行版而异。以下是最常见的两种情况。
从 Ubuntu 官方存储库安装 Node.js 和 npm
Node.js 非常受欢迎,可以进入世界上最流行的 Linux 发行版之一——Ubuntu 的官方软件存储库。如果您的 VPS 使用 Ubuntu,安装 Node.js 涉及几个简单的步骤。让我们来看看它们。
1. 更新你的 VPS
在安装 Node.js 之前,建议更新 Ubuntu 虚拟服务器的包索引。您可以使用以下命令执行此操作:
sudo apt-get 更新
2. 安装 Node.js
因为 Node.js 是 Ubuntu 官方存储库的一部分,您可以使用单个命令安装它:
sudo apt-get install nodejs
注意:如果您采用这种方法,Ubuntu 将从存储库安装最新的可用软件包。如果您需要特定版本的 Node.js,则此安装方法不适合。
3.安装npm
再次,您可以使用单个命令安装 npm 的最新版本:
sudo apt-get 安装 npm
4.验证安装是否成功
确保安装成功的最简单方法是询问 Ubuntu 您当前使用的 Node.js 和 npm 版本。
对于 Node.js,命令是:
节点-v
对于 npm,您需要输入:
npm -v
手动安装 Node.js
如果您不运行 Ubuntu 或者更喜欢安装不是最新版本的 Node.js,您可以手动执行安装。它比直接从存储库中设置要复杂一些,但只要你小心,你应该没有问题。以下是步骤:
1. 下载并解压 Node.js 存档
你首先需要确保你在你的主目录中。直接去那里的命令是:
光盘~
接下来,您可以使用以下命令下载 Node.js 存档:
wget https://nodejs.org/dist/v14.18.1/node-v14.18.1-linux-x64.tar.xz
注意:使用此命令,您将下载版本 14.18.1(撰写本文时的最新版本)。如果要下载不同版本的 Node.js,则需要相应地调整 URL。
2.解压存档
要提取您刚刚下载的 Node.js 存档,请使用以下命令:
tar xvf node-v14.18.1-linux-x64.tar.xz
这些文件将被提取到一个名为node-v14.18.1-linux-x64的新目录中。
3.重命名Node.js的目录,让你的生活更轻松
虽然并非绝对必要,但此步骤将简化安装过程。我们要做的是将包含从node-v14.18.1-linux-x64中提取的文件的文件夹重命名为不那么麻烦的东西,例如node。这是命令:
mv 节点-v14.18.1-linux-x64 节点
4. 安装 Node.js 和 npm 的二进制文件
最后三个命令将创建所需的目录,复制其中的二进制文件,并创建必要的符号链接:
mkdir ~/bin
cp node/bin/node ~bin
cd~ bin
ln -s ../node/lib/node_modules/npm/bin/npm-cli.js npm
5.检查是否安装成功
再次,您可以询问 Linux 服务器上安装了哪些版本的 Node.js 和 npm,以确认一切正常。命令是:
节点-v
和
npm -v
在我们的例子中,响应应该分别是v14.18.1和6.14.15。
启动 Node.js 应用程序
在您的服务器上安装了 Node.js 和 npm 之后,您可能想知道如何使用它们启动应用程序。你将如何去做取决于应用程序本身。
使用 npm
如果您需要使用有效的package.json文件启动生产就绪应用程序,您可以使用 npm 包管理器。命令是:
nohup npm start -production &
使用节点
如果您的应用没有 package.json 文件,则需要使用 Node.js 本身。您可以使用以下命令执行此操作。
nohup 节点 [您的应用名称].js &
请注意,如果您选择运行没有包含 package.json 文件的应用程序,您将无法使用 npm 管理它。
如何停止应用程序
要终止正在运行的应用程序,我们需要终止该进程。幸运的是,有一个简单的命令可以停止服务器上的任何 Node.js 进程:
pkill 节点
将您的 Web 服务器与正在运行的 Node.js 应用程序连接起来
由于 VPS 可以处理的各种技术组合,有很多方法可以将您的网站连接到Node.js 应用程序。由于 Apache 是最常见的 Web 服务器之一,我们将使用它作为展示平台。
我们想利用.htaccess 文件来执行网站和 Node.js 应用程序之间的连接。
.htaccess 文件位于文档根文件夹 ( home/[your username]/public_html/ )。如果您的服务器上安装了虚拟主机控制面板,则可以通过集成文件管理器访问它。否则,您的选择是通过 SSH 访问服务器并使用文本编辑器打开它。
以下是您需要添加到 .htaccess 文件中的内容:
DirectoryIndex disabled
RewriteEngine On
RewriteRule ^$ http://127.0.0.1:XXX/ [P,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ http://127.0.0.1:XXX/$1 [P ,L]
将“XXX”替换为您的 Node.js 应用程序的端口号。完成后,请记住在退出编辑器之前将更改保存到您的 .htaccess 文件中。
使用 SPanel 部署 Node.js 应用程序
那些发现所有这些步骤有点吓人的人会很高兴得知,如果你有一个SPanel VPS,你不需要经历任何一个。
Node.js 集成曾经是我们的 SPanel 客户最强烈要求的功能之一,我们别无选择,只能实现它。SPanel 服务器一直支持 Node.js,但现在,您不需要自己安装或请其他人安装。
Node.js 已在所有 SPanel 服务器上进行设置和配置,在我们专有的管理平台中,您会发现一个易于使用的工具,可帮助您通过点击启动应用程序。以下是所有步骤:
1. 将您的应用程序上传到您选择的文件夹。
您可以使用您最喜欢的 FTP 客户端或 SPanel 的文件管理器将 Node.js 应用程序从本地计算机上传到虚拟服务器。
2. 通过 SPanel 的 NodeJS Manager 部署应用程序。
SPanel 的 NodeJS 管理器在用户界面中可用。
Deploy a New App按钮会打开一个弹出窗口,让您可以快速启动您的应用程序。您需要做的就是设置应用程序 URL、它将侦听的端口以及应用程序本身的路径。
注意:您的 Node.js 应用程序只能使用 3000 到 3500 之间的端口。
单击部署以完成该过程。
3. 管理您的 Node.js 应用程序。
SPanel 的 NodeJS 管理器显示所有当前部署的 Node.js 应用程序的列表。Actions下拉菜单可让您一一停止、重新启动和取消部署它们。
结论
如果您想创建一个简单的博客或小型在线商店,您可能不需要 Node.js。JavaScript 运行环境更适合更复杂的项目,通常由在该领域有更多经验的人领导。
使用正确的命令,他们在自我管理的虚拟服务器上安装和使用 Node.js 应该没有问题。然而,即使是最大的命令行向导也会欣赏从易于使用的图形用户界面(如 SPanel 的 NodeJS 管理器)启动应用程序的便利性。