Node.js 应用服务器 AWS OpsWorks 堆叠层 - AWS OpsWorks

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Node.js 应用服务器 AWS OpsWorks 堆叠层

重要

这些区域有: AWS OpsWorks Stacks 该服务已于 2024 年 5 月 26 日终止,新客户和现有客户均已禁用。我们强烈建议客户尽快将其工作负载迁移到其他解决方案。如果您对迁移有疑问,请联系 AWS Support 团队开启 AWS re: post 或通过 AWS 高级支持

注意

此层仅适用于基于 Linux 的堆栈。

Node.js App Server 层是一个 AWS OpsWorks 堆叠层,为充当 Node.js 应用程序服务器的实例提供蓝图。 AWS OpsWorks Stacks 还会安装 Express,这样,层的实例将同时支持标准和 Express 应用程序。

安装:Node.js 安装在 /usr/local/bin/node 中。

Add Layer 页面提供以下配置选项:

Node.js 版本

有关当前支持的版本的列表,请参阅AWS OpsWorks 堆栈操作系统

自定义安全组

如果您选择不自动关联内置,则会显示此设置 AWS OpsWorks 将安全组与您的图层堆叠在一起。您必须指定要将哪一安全组与层关联起来。有关更多信息,请参阅 创建新堆栈

Elastic Load Balancer

您可以将 Elastic Load Balancing 负载均衡器连接到层的实例。

重要

如果您的 Node.js 应用程序使用SSL,我们建议您尽可能禁用SSLv3以解决 CVE-2015- 8027中描述的漏洞。为此,您必须将 Node.js version 设置为 0.12.9

部署 Node.js 应用程序

有关如何实现一个简单的 Node.js 应用程序的详细演练 AWS OpsWorks 堆叠并将其部署到堆栈中,请参阅创建您的第一个 Node.js 堆栈。一般来说,Node.js 应用程序适用于 AWS OpsWorks 堆栈应满足以下条件:

  • 主文件必须命名为 server.js 且驻留在部署的应用程序的根目录下。

  • Express 应用程序必须将 package.json 文件放在应用程序的根目录下。

  • 默认情况下,应用程序必须在端口 80 (HTTP) 或端口 443 (HTTPS) 上进行侦听。

    可以在其他端口上监听,但是 Node.js App Server 层的内置安全组 AWS—— OpsWorks-nodejs-App-Server 仅允许进入端口 80、443 和 22 () 的入站用户流量。SSH要允许流入其他端口的入站用户流量,请使用适当的入站规则创建安全组将其分配给 Node.js App Server 层。请勿通过编辑内置安全组来修改入站规则。每次创建堆栈时, AWS OpsWorks Stacks 会使用标准设置覆盖内置安全组,因此您所做的任何更改都将丢失。

注意

AWS OpsWorks Stacks 将PORT环境变量设置为 80(默认)或 443(如果启用SSL),因此您可以使用以下代码来侦听请求。

app.listen(process.env.PORT);

如果您将 Node.js 应用程序配置为支持 SSL,则必须指定密钥和证书。 AWS OpsWorks Stacks 将每个应用程序服务器实例的数据作为单独的文件放到 /srv/www/app_shortname/shared/config 目录中,如下所示。

  • ssl.crt— SSL 证书。

  • ssl.key— SSL 钥匙。

  • ssl.ca-链证书(如果您已经指定了一个)。

您的应用程序可以从这些文件中获取SSL密钥和证书。