所以我有一個flask網路應用。我需要讓它只使用HTTPS。所以我在這里很迷茫:
應用負載均衡器 -> 目標組 -> EC2實體 (:443) -> ? -> Flask
因此,最初我在http堆疊中有以下內容:
nginx -> gunicorn -> Flask
這對http來說很有效。而且,如何設定一個目標組來指向http中nginx的暴露埠是有意義的。你只需提供埠,很簡單。
但是,當你把HTTPS加入到方程中時,我就完全迷失了。你讓AWS通過ACM(Aws證書管理器)向你提供證書本身。然而,非常明確的是,AWS證書管理器不允許匯出所創建的證書。因此,你不能向nginx提供證書,但要在nginx上使用https(443),你必須在服務器塊本身上提供ssl_certificate.crt。
所以從閱讀情況來看,你似乎不需要nginx...我需要gunicorn嗎?我只需要運行flask嗎?如果是這樣,它是如何 "暴露 "埠:443的呢?
我真的不知道如何將Flask連接到目標組。有誰能給我指出正確的方向嗎?我已經用盡了所有的谷歌搜索選項。
uj5u.com熱心網友回復:
你的困惑是認為你需要在負載均衡器和Flask應用程式之間使用SSL。你可以在負載均衡器上終止SSL。這將在任何客戶端(如 Web 瀏覽器)和您的 AWS 基礎設施之間提供 SSL,并且您將只有虛擬專用網路內的非 SSL 流量,在負載平衡器和 EC2 實體之間。
在 AWS ACM 中創建 SSL 證書,并將其附加到應用程式負載平衡器的監聽器上。讓您的負載平衡器中的兩個監聽器(沒有 SSL 的 80 埠監聽器和有 SSL 的 443 埠監聽器)轉發到目標組。讓目標組通過80埠連接到你的EC2實體,或8080或5000或任何你運行Flask的埠。我想Flask默認的是5000埠。
如果你是在 "大資料時代",那么你就應該在 "小資料時代"。
如果你對端到端加密有某種要求,要求你在負載均衡器和EC2實體之間設定SSL,比如一些監管要求,那么你需要回到使用Nginx,并在某處購買一個SSL證書,或者設定一個免費的Let's Encrypt證書,你可以在Nginx中使用。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/317188.html
標籤:
上一篇:告訴打字稿動態定義的函式
