如何在Amazon EC2上使用Nginx设置创建节点应用

如何逐步演练如何在Amazon EC2实例上的Nginx代理后面启动Node js应用程序。开始之前的两件事开始启动之前,需要一些注意事项:

  1. git存储库中的Node js应用程序-确保您的Node应用程序已准备就绪并且可以从git存储库中克隆
  2. AWS账户-如果您还没有账户,可以在这里注册

就是这样,我们准备推出了EC2实例

  1. 登录到您的AWS管理控制台
  2. 转到EC2服务
  3. 转到启动实例
  4. 从列表中选择第一个:用于64位(x86)的Amazon Linux 2 AMI-基本上是第一个默认选项
  5. 选择实例类型。假设您正在运行一个简单的应用程序,然后选择最便宜的实例:t3a.nano。单击“查看并启动'',因为我们在这里介绍了复杂性,它将采用所有默认设置,仅更改以后需要的几个设置。在下一个屏幕上,单击启动再次确认
  6. 系统将要求您选择一个现有的密钥对或创建一个新的密钥对-没关系,我们将使用AWS控制台中基于Web的SSH客户端来选择任何选项。点击启动实例
  7. 单击“查看实例'',然后在AWS启动新实例时为自己喝杯咖啡。这将需要几分钟。

设置安全组在启动实例时,您需要配置AWS安全组,以便您和您的网站访问者可以访问您的应用程序(并且可以通过SSH连接到它)。

  1. 在EC2仪表板上,找到您的新实例并向右滚动视图以查看您的实例所在的安全组。记住该安全组的名称
  2. 在左侧菜单中找到并转到安全组
  3. 选择安全组,然后从“操作''中选择“编辑入站规则''
  4. 在入站规则中,您想添加以下两个规则:
  • 类型:SSH,来源:Anywhere
  • 类型:HTTP来源:任何地方

单击保存返回实例通过SSHOk连接到您的实例,这样您就可以喝咖啡了,并且可以看到新实例状态为“正在运行''并且状态检查在AWS EC2仪表板上为绿色吗?接下来,我们通过SSH连接到实例:

  1. 在AWS EC2实例仪表板中,选择您的实例,然后按
  2. 从连接选项中选择EC2实例连接(基于浏览器的SHH连接)-这是最简单,最快的选项,无需配置

安装Node,git,yarn和PM2来运行您的应用程序现在,乐趣开始了,我们将逐步安装所需的所有软件。您现在将在SSH终端1中工作。使用最新的软件包和基本环境更新系统。安装nvm以便在下一步中安装Node:curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.1/install.sh | bash3。关闭并重新打开SSH控制台,以使更改生效4。安装Nodenvm安装节点5。安装Gitsudo yum安装git6。安装纱线。您想知道为什么不是npm?这是一篇文章为什么要使用纱线。最重要的是,纱线更快,更有弹性。curl-o- -L https://yarnpkg.com/install.sh | bash8。重新打开终端窗口以使更改生效9。从git repogit克隆https://github.com/克隆您的Node应用/.git
– 要么 –
git clone https://@ bitbucket.org //.git10。检查是否是这样11。您在应用中看到新文件夹了吗?太好了,转到您的应用程序文件夹cd 12.安装您的应用程序包yarn install13。安装Node进程管理器以将节点应用程序作为服务运行。您需要一个Node进程管理器,以便在出现问题时自动重新启动和重新加载您的应用程序。我们将使用PM2-一个非常受欢迎的生产就绪过程管理器。在全局范围内添加pm214。使用PM2流程管理器启动您的节点应用程序。下面的示例假定您的应用程序通过index.js启动。将index.js替换为另一个文件,例如app.js或server.js,这取决于您通常在Node.pm2中启动应用程序的方式。start index.js –name my-app15。如果出现问题,请让PM2自动重启您的应用程序pm2 startup重新输入控制台要求您输入的命令以创建启动配置。您需要重新输入它,因为复制粘贴实际上无法在控制台中工作这有点痛苦,但请确保正确完成此操作,否则PM2将无法重新启动。现在保存PM2设置:pm2 saveSet Nginx来在proxy1后面运行您的应用程序。安装Nginxsudo yum install nginx您将收到一条警告命令来安装AWS管理的Nginx软件包-太好了,这就是我们所需要的sudo amazon-linux-extras install nginx1.122。编辑Nginx配置以将HTTP流量从端口:80重定向到您的应用程序在本地主机上运行的端口。在下面的示例中,我假设您的应用程序在端口3000上运行。如果您的应用程序在其他端口上运行,请确保反映代码行proxy_pass http://127.0.0.1:3000中的那个;在以下配置中:打开编辑器:sudo nano /etc/nginx/nginx.conf并编辑配置文件以包含以下服务器块(将其他所有内容保留不变):server {
   监听80 default_server;
   听(::):80 default_server;
   server_name localhost;
   根目录/ usr / share / nginx / html;
   地点 / {
       proxy_pass http://127.0.0.1:3000;
   }
}如果您是nano编辑器的新手,可以按Ctr + X完成编辑,然后提示您是否保存文件。3。重新启动Nginxsudo服务nginx restart4。将Nginx设置为在出现问题时自动重启sudo chkconfig nginx on启动并运行。转到带有EC2实例的AWS仪表板,然后为新实例找到“公共DNS(IPv4)''。如果您将该网址复制到浏览器中,则应该可以看到Node应用程序的输出。您仍然需要考虑如何为您的应用设置适当的域我想使用AWS Route 53和Cloudfront CDN将流量转发到EC2实例中。这给了我弹性,免费的SSLs证书和HTTP重定向,而不必担心EC2实例上的Nginx进一步配置和证书管理。您需要配置您的Nginx代理标头并了解有关服务器和位置块配置的更多信息3。您可能希望使用Nginx配置文件设置一个Git存储库,以便您可以在适当的代码编辑器中对其进行编辑,而不仅仅是将其最新版本导入EC2实例4中。从本地计算机使用适当的SSH客户端(如PuTTY)。这将比通过AWS Console5的Web客户端更快,更流畅的体验。考虑一下您应用的缓存策略
          
          
          
          

          

          
          
          
        

资讯来源:由0x资讯编译自HACKERNOON。版权归作者所有,原文链接:https://hackernoon.com/node-app-with-nginx-on-amazon-ec2-7sw42qt。未经许可,不得转载
提示:投资有风险,入市需谨慎,本资讯不作为投资理财建议。请理性投资,切实提高风险防范意识;如有发现的违法犯罪线索,可积极向有关部门举报反映。
你可能还喜欢