没有Load Balancer – NodeJS的EC2实例上的AWS SSL
是否有可能运行一个EC2实例,监听port 443
,没有load balancer
? 我正在尝试在我的Node.JS
应用程序,但它不工作时,我使用https://
调用页面。 但是,如果我把它设置为port 80
一切工作正常与http://
。
我之前使用load balancer
和route53
,但我不想为ELB支付18美元/月,特别是当我只有一台服务器运行时。
谢谢您的帮助
你是对的,如果只是一个例子,你觉得你不需要为stream量的大幅增加做好准备,你就不必为ELB付钱。
从高层angular度来看,您必须经历以下步骤:
- 安装一个nginx服务器来为你的NodeJS应用程序提供服务。
-
在nginx服务器上安装你的SSL证书。
– 手动执行此操作,ssh'ing到服务器和安装证书如上所述。
– 或者在您的应用程序中包含必要的文件(我相信这只适用于弹性beanstalk?),它将自动覆盖nginxconfiguration文件,如下所述。
- 确保nginx正在侦听端口443(应该在上一步完成)
- 打开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怎么样?
对于我们的项目(很像其他海报描述),我们使用这个设置:
- nginx作为负载平衡器,代理端口80上的所有调用(没有直接调用端口3000上的node.js服务器,这是closures的)
- pm2作为Node.js的进程pipe理器(用于部署)
- keymetrics.io进行监控
- Nodejs v6.9.3硼/ lts(通过NVM)
- 带有WiredTiger引擎的Mongodb 3.2(Compose.io)
- 用于托pipe的Amazon EC2实例(Amazon Linux不是Ubuntu)
这个设置对我们来说很好。 在这个设置中,我们可以在不使用亚马逊负载均衡器的情况下设置SSL。