2015-07-20 65 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