没有Load Balancer – NodeJS的EC2实例上的AWS SSL

是否有可能运行一个EC2实例,监听port 443 ,没有load balancer ? 我正在尝试在我的Node.JS应用程序,但它不工作时,我使用https://调用页面。 但是,如果我把它设置为port 80一切工作正常与http://

我之前使用load balancerroute53 ,但我不想为ELB支付18美元/月,特别是当我只有一台服务器运行时。

谢谢您的帮助

你是对的,如果只是一个例子,你觉得你不需要为stream量的大幅增加做好准备,你就不必为ELB付钱。

从高层angular度来看,您必须经历以下步骤:

  1. 安装一个nginx服务器来为你的NodeJS应用程序提供服务。
  2. 在nginx服务器上安装你的SSL证书。

    – 手动执行此操作,ssh'ing到服务器和安装证书如上所述。

    – 或者在您的应用程序中包含必要的文件(我相信这只适用于弹性beanstalk?),它将自动覆盖nginxconfiguration文件,如下所述。

  3. 确保nginx正在侦听端口443(应该在上一步完成)
  4. 打开EC2服务器的安全组,对应于要进入服务器的端口(端口80 /端口443)

可能吗? 当然是。 听起来您已经在ELB上安装了SSL证书,现在您已经删除了ELB。 您现在必须在EC2服务器上安装SSL证书。 没有ELB或CloudFront分配,您将无法使用AWS ACM SSL证书。 如果您不想为其中任何一项服务付款,则必须在其他地方获得SSL证书。

在我们的项目中我们使用:

  • nginx作为负载均衡器,代理和caching的静态文件
  • pm2作为Node.js的进程pipe理器
  • 作为长期支持版本的node.js v6.9.1
  • MongoDB作为数据库
  • redis作为队列和caching

这东西在t2.medium实例上运行。

你觉得在你的项目中使用nginx怎么样?

对于我们的项目(很像其他海报描述),我们使用这个设置:

  1. nginx作为负载平衡器,代理端口80上的所有调用(没有直接调用端口3000上的node.js服务器,这是closures的)
  2. pm2作为Node.js的进程pipe理器(用于部署)
  3. keymetrics.io进行监控
  4. Nodejs v6.9.3硼/ lts(通过NVM)
  5. 带有WiredTiger引擎的Mongodb 3.2(Compose.io)
  6. 用于托pipe的Amazon EC2实例(Amazon Linux不是Ubuntu)

这个设置对我们来说很好。 在这个设置中,我们可以在不使用亚马逊负载均衡器的情况下设置SSL。