本文概述
介绍
在本文中, 我将向你展示如何轻松在Amazon EC2服务器上部署节点js应用程序并在实时URL上运行。
Nodejs
Node Js是javascript的运行时, 它基于用C ++编写的google chrome V8引擎构建。
AWS
Amazon Web Services是一个非常流行且可靠的平台, 可在服务器上托管我们的应用程序。我们可以使用多种类型的Amazon服务来托管我们的应用程序, 但我们将使用EC2(弹性计算服务)。它是免费的, 并且在创建过程中提供了非常定制的配置。我们创建一个实例:初始化了一定数量的资源(操作系统, 磁盘空间, 内存等)。
EC2
为什么选择EC2?因为它是免费的, 并且为最终用户提供了非常可定制的配置。我们可以选择最喜欢的基于Linux的操作系统, 然后在该OS上安装所有必需的实用程序和软件。
我们将遵循的步骤:
- 在AWS上创建帐户
- 启动EC2实例
- SSH进入你的实例
- 安装Node.js
- 安装Git并从GitHub克隆存储库
- 启动node.js应用
- 使用Pm2保持应用程序运行
1.在AWS上创建帐户
转到https://www.aws.com并在AWS上创建新帐户。如果你已经在AWS上注册, 请转到AWS控制台。一个AWS新帐户使你可以试用12个月的免费套餐Amazon EC2, Amazon S3和Amazon DynamoDb服务。
选择个人帐户类型, 提供所有必需的信息并填写注册表格。


2.启动EC2实例
现在, 注册过程已完成, 请转到aws控制台并提供登录凭据。登录后, 你可以在” AWS服务”部分下查看所有aws服务。
单击”计算机服务”下的” EC2服务”, 它将显示” EC2仪表板”页面, 在此页面上, 只需单击”创建实例”部分下的”启动实例”按钮。

我们必须选择Amazon Machine Image来启动我们的实例。亚马逊提供了各种类型的图像, 但是我们将继续使用Ubuntu 18.04。它更安全, 并且70台服务器正在使用不同版本的linux操作系统。

选择Ubuntu 18.04作为我们机器的映像。选择机器之后, 我们必须配置我们的机器(你可以跳过所有这些后续步骤并直接启动实例)。单击下一步添加存储按钮。

选择默认存储配置, 然后单击”下一步添加标签”按钮。

现在, 我们可以看到”添加标签”页面。在本节中, 我们必须使用键值对添加至少一个标签。例如, 你可以添加Key = ServerName和value = Nodejs_Server。添加标签后, 单击”下一步:配置安全组按钮”。

添加这些标签后, 我们必须打开服务器的某些端口以与外界通信。启动服务器后, 我们还可以配置这些端口。单击添加标签按钮, 然后添加80、8080和22个端口。
单击下一步查看并启动按钮。

现在, 我们即将启动EC2服务器。单击启动按钮, 我们将看到一个对话框。创建一个新的密钥对, 并将其下载到本地计算机上。启动实例后, 无法生成此密钥。
生成密钥对后, 单击启动实例按钮。

3. SSH到你的实例
因此, 我们已经成功启动了EC2服务器。现在, 我们将使用Linux上的终端和Windows上的腻子从本地计算机访问服务器。如果使用Windows, 则需要将.pem密钥更改为.ppk格式。你可以点击此链接转换密钥。转到下载私钥的本地目录。转到AWS实例控制台, 然后单击”连接”按钮, 然后按照简单的步骤进行操作。
恭喜你!你已连接到EC2远程服务器。

4.安装Nodejs
现在, 我们已经连接到实例, 可以开始在环境中安装所需的软件包, 以使你的node.js应用程序正常工作。单击此链接在服务器上安装nodejs。我将安装最新版本的Node JS, 即12.x。在终端上完成安装类型” node -v”后, 它将在终端屏幕上显示v12.4.0。

5.安装Git并从GitHub克隆存储库
在Ubuntu上安装git
我们不需要在ubuntu 18.04上安装git。它已经安装在我们的服务器上。你可以使用git –help命令进行检查。如果尚未安装, 则可以使用以下命令进行安装。
sudo apt-get install git
在服务器上克隆应用
你可以通过在终端上使用此命令来克隆简单的Node js基本应用程序。
git clone https://aemwaqas60@bitbucket.org/aemwaqas60/node-basics.git
克隆存储库后, 运行cd node-basics并使用ls命令查看文件夹的所有内容:

6.启动node.js应用
我们已成功在服务器上克隆了该应用程序。在我们的项目目录中运行以下命令:
npm install
它将安装该应用程序所需的所有软件包。有几种启动应用程序的方法, 但是我们将使用简单的命令:
node app.js

从你的实例页面复制公共DNS, 将其粘贴到Web浏览器上, 并在DNS地址的末尾附加端口:3000。如你所见, 这将不起作用, 并且浏览器上没有任何显示, 并且浏览器连接将超时。


这是安全组的来源。在AWS管理控制台中, 转到安全组, 选择一个未命名为”默认”(launch-wizard-1或你的安全组名称)的名称, 然后编辑入站规则。


再次访问该URL, 你现在应该可以看到该应用程序的内容。

7.使用PM2保持应用程序运行
打开终端后, 该应用程序即开始运行, 随着关闭终端, 该应用程序将终止。关闭终端或与远程服务器断开连接后, 我们将安装PM2(生产管理器2)以保持我们的应用运行。运行以下命令:
npm install pm2 -g
它将在服务器上全局安装PM2软件包。切换到我们的应用目录并运行:
sudo pm2 start app.js

现在, 即使你关闭终端并在浏览器中检查URL, 该应用程序也将运行。甜!要在服务器重新启动时自动运行PM2, 请发出以下命令:
sudo pm2 startup
现在, 你可以使用sudo reboot重新启动实例, 并在1分钟后连接。你仍然可以使用以下命令查看该应用程序是否在端口3000上运行:
PM2 list
# Or
PM2 show app
大!你也可以在浏览器上访问该应用。

来源:
https://www.srcmini02.com/61379.html