2015-07-20 66 views
0

我有一个创建两个服务器的nod​​ejs程序。亚马逊弹性beanstalk上的HTTP/HTTPS nodejs服务器

HTTPS服务器运行在端口端口8080上运行(它只是转发到我的域名以https)3000

HTTP服务器

我想在弹性豆茎部署此。

我上传的证书,并在弹性魔豆打开HTTPS端口(如该文件中所概述:http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/configuring-https.html

我的应用程序并不运行在所有。它一旦部署就会​​变红。 看着日志,我看到它试图重定向到https域名,但那不起作用。

我不明白亚马逊怎么知道哪个端口有哪个端口。它如何知道端口3000有https,端口8080有http?这在任何地方都没有提及。也许这是问题?

不知道该怎么办?非常感谢。

回答

0

基本上,你需要对你的coustumized弹性魔豆环境:

  • 弹性负载均衡
    • 侦听端口80和代理它的EC2实例端口8080
    • 听在端口443上,并将其代理到EC2实例端口3000.
  • EC2 Web服务器/代理(您的Nginx/Apache):
    • 侦听端口8080和响应并重定向到HTTPS。
    • 在端口3000上侦听并提供请求。

我还以为你的配置失败,因为你是使用弹性魔豆Web控制台ELB。 Web控制台只能将HTTP和HTTPS转发到EC2实例中的单个端口。因此,您的请求绝不会由端口3000处理。您无法使用Elastic Beanstalk Web控制台执行此操作,您需要使用另一种方法(如.ebextensions或CLI)来应用此操作。

请看看我的回答here和我的帖子here