2017-07-25 135 views
2

我最近開始爲自己的個人網站使用Docker。這樣的設計我的網站基本上是AWS ECS Production Docker部署

Nginx -> Frontend -> Backend -> Database

目前,該數據庫使用AWS RDS主持。所以我們現在可以離開它。

因此,這裏是我的問題

  1. 我現在有我的應用程序分離到不同的存儲庫。前端和後端分別。

    • 我應該在哪裏存儲我的'根'docker-compose.yml文件。我不能決定將它存儲在前端/後端存儲庫中。
  2. 在docker-compose.yml文件中,nginx是否可以從我的前端服務中掛載一個沒有任何端口的卷並提供該目錄?

  3. 我一直在嘗試這麼多天,但似乎無法使用Docker與我的3層應用程序在ECS羣集中部署適當的生產。有什麼好的例子可以參考nginx.conf嗎?

  4. 如何自動SSL我的域名?

謝謝各位!

回答

2

我應該在哪裏存儲我的'root'docker-compose.yml文件。

許多組織使用用於存儲基礎架構相關元數據(例如CloudFormation模板和docker-compose.yml文件)的頂級回購協議。所以它會是這樣的。因此,開發人員首先克隆頂層回購,理想情況下,回購包含子模塊或工具,用於爲每個子組件或微服務拉下子回購站。

在docker-compose.yml文件中,nginx是否可以從我的前端服務中掛載一個沒有任何端口的卷並提供該目錄?

是的,你可以做到這一點,但它會是危險的,磁盤將是一個瓶頸。如果您的意圖是從前端服務獲取內容,並讓它由Nginx提供服務,那麼您應該通過端口將您的前端服務鏈接到您的Nginx服務器,並將Nginx設置爲應用程序容器前的逆向代理。您還可以配置Nginx將內容從您的前端服務器緩存到磁盤卷(如果內容太多而不適合內存)。這將是一種更安全的方式,而不是將磁盤用作通信鏈接。下面是如何在AWS ECS配置這樣的一個反向代理的例子:https://github.com/awslabs/ecs-nginx-reverse-proxy/tree/master/reverse-proxy

我似乎無法部署與碼頭工人適當的生產與ECS集羣我3層應用程序。有什麼好的例子可以參考nginx.conf嗎?

我最後一個答案中的鏈接包含一個樣本nginx。conf應該是有幫助的,以及一個用於部署應用程序容器的示例任務定義以及一個在Amazon ECS上相互鏈接的nginx容器。

如何自動SSL我的域名?

如果您在AWS上,獲取SSL的最佳方式是使用應用程序負載均衡器(ALB)的內置SSL終端功能。 AWS ECS與ALB集成,可將Web流量傳輸到您的容器。 ALB還與Amazon證書管理器(https://aws.amazon.com/certificate-manager/)集成此服務將爲您提供一個可自動更新的免費SSL證書。這樣您就不必再擔心您的SSL證書過期了,因爲它只是在您的ALB中自動更新和更新。

+0

感謝您的支持。我終於開始工作了!很酷,不知道以前的git子模塊是什麼,但我會開始使用它! –