2016-11-08 114 views
4

是否有可能運行EC2實例,正在監聽port 443,沒有load balancer?我正在嘗試在我的Node.JS應用程序中,但當我使用https://致電該頁時,它不起作用。但是,如果我將它設置爲port 80,則一切正常,http://沒有負載均衡器的EC2實例上的AWS SSL - NodeJS

我早點用load balancerroute53,但我不想爲ELB支付18美元/月,尤其是當我只有一臺服務器運行時。

感謝您的幫助

回答

3

你是對的,如果它只是一個實例,而且你覺得你不需要爲流量的大幅增加做好準備,那麼你不應該爲ELB付費。

從高層次的角度來看,你必須經過以下幾個步驟:

  1. 安裝Nginx上的服務器,以滿足您的應用程序的NodeJS。
  2. 在nginx服務器上安裝SSL證書。

    - 要麼手動執行此操作,請按照here所述將服務器安裝到服務器並安裝證書。

    - 或者在應用程序中包含必要的文件(我相信這隻適用於彈性beanstalk?),它將自動覆蓋nginx配置文件,如here所述。

  3. 確保nginx的是偵聽端口443(應該已經在前面的步驟已經完成)
  4. 打開對應到您想要的流量進入服務器(端口80/443端口)
  5. 的EC2服務器的安全組
0

在我們的項目中,我們使用:

  • nginx作爲負載平衡器,代理和緩存靜態文件
  • pm2作爲Node.js的
  • node.js進程管理器v6.9.1作爲長期支持版本
  • MongoDB as數據庫
  • redis如隊列和緩存

這東西是在t2.medium實例上運行。

您如何看待在您的項目中使用nginx?

2

可能嗎?當然是。聽起來你已經在ELB上安裝了SSL證書,現在你已經刪除了ELB。您現在必須在EC2服務器上安裝SSL證書。沒有ELB或CloudFront分配,您無法使用AWS ACM SSL證書。如果您不想爲其中任何一項服務付費,則必須在其他地方獲得SSL證書。

+0

我有來自Namecheap的SSL證書,並且它已上傳到IAM。當我設置ELB時,我只需選擇使用IAM中的現有SSL證書。我如何將它安裝在我的EC2上?我需要SSH進入它或什麼? @MarkB – Thomas

+0

是的,您將不得不SSH進入服務器並手動安裝證書。在這種情況下,您將無法使用IAM管理證書。 –

0

對於我們的項目(就像其他海報描述的),我們使用這種設置:

  1. nginx的負載均衡和代理的端口80上的所有呼叫(沒有直接打電話給Node.js的端口服務器3000對公衆開放)
  2. PM2作爲過程管理器對的Node.js(以及部署)
  3. keymetrics.io用於監測
  4. 的NodeJS v6.9.3硼/ LTS(通過NVM)
  5. MongoDB的3.2 WiredTiger引擎(Compose.io)
  6. 託管亞馬遜EC2實例(亞馬遜的Linux Ubuntu的不)

這種設置非常適用於我們。在這個設置中,我們可以在不使用亞馬遜負載平衡器的情況下設置SSL。

相關問題