簡體   English   中英

成功使用端口 5000 的 EC2 實例中的 API,但從負載均衡器訪問時,該端口不工作

[英]API in EC2 instance using port 5000 successfully but when reaching from load balancer the port isn't working

我在 Ubuntu Server 20.04 LTS 中創建了一個 EC2 實例。 我在我的服務器中上傳了我的 Flask API 並使用tmux保持服務(如果你需要它,我是這樣做的: https : //www.twilio.com/blog/deploy-flask-python-app-aws但是它不是端口 8080,而是端口 5000)。

自從將我的 API 放入服務器后,我對其進行了測試,每個端點都正常工作。

我的下一步是使用 Route 53 和證書管理器創建一個域、該域的 SSL 證書,並添加 CNAME 記錄: 在此處輸入圖片說明 在此處輸入圖片說明

我知道我可以從我的域成功訪問我的 API 的第一件事是使用該域的 ip 創建一個簡單的 A 記錄(順便說一句,我為該 EC2 實例設置了一個彈性 IP)。

到目前為止一切順利,我可以使用http://mydomain:5000成功訪問我的 API。 沒有問題,端點仍在正常工作。

然后我遇到的問題(我不知道,因為我在使用證書管理器添加 SSL 證書時很新)是即使證書已頒發,它也沒有真正“使用”。 我發現這並不容易,接下來我需要做的是將證書鏈接到我的 EC2 實例,CNAME 記錄是不夠的。

我搜索了如何做到這一點,我遇到了一些挫折並且有點氣餒,因為許多指南都是關於使用 S3 的,或者沒有提到 EC2 實例,但我找到了一個並遵循了它,這里是: https : //youtu.be/ bWPTq8z1vFY?t=533 (負載均衡部分不到3分鍾)。

我按照那個教程創建了我的負載均衡器。 應用程序負載均衡器 (HTTP/HTTPS),面向 Internet,可用區包括我的 EC2 實例所在的可用區,選擇了我的 SSL 證書(這實際上是我擁有的唯一一個),負載均衡器處於相同的安全性分組為我的 EC2 實例(我什至按 Ctrl Fed 來檢查它是否是相同的字符串),並且我有 2 個偵聽器:HTTP 和 HTTPS: 在此處輸入圖片說明

下一部分是將我的簡單 A 記錄更改為負載均衡器的簡單 A 記錄。 我刪除了我第一個創建的

即使屏幕略有不同(雖然是從 2020 年開始,AWS 剛剛更新了 UI),但在添加新的 A 記錄時,這就是我正在做的事情: 在此處輸入圖片說明

這是最終結果: 在此處輸入圖片說明

等待幾分鍾更新准備就緒后,我嘗試使用https://mydomain:5000訪問我的端點,但請求失敗。

這是與之前的不同之處,當我嘗試訪問my_ip_address:5000http:mydomain:5000出現此消息,這是有道理的,因為我在訪問 API 時沒有任何返回值(這是完全正常的行為): 在此處輸入圖片說明

但是現在它說我無法訪問該站點: 在此處輸入圖片說明

如果我只輸入https:mydomain (我以前什至沒有得到),我什至會收到 502 錯誤: 在此處輸入圖片說明

此外,這是我的目標群體如何出現健康問題,我不明白為什么(我仍在學習,可能與配置有關): 在此處輸入圖片說明

同樣,這可能與我仍然沒有得到的配置有關,因為我的 EC2 實例是健康的: 在此處輸入圖片說明

我不知道如何從這里開始,我一直在尋找線索和其他替代方案,但這些替代方案甚至更舊和過時。

如果您對我應該如何執行此過程有任何其他選擇,或者如果我這樣做的方式有問題,請指導我,我在這一點上有點卡住了。

在此先感謝您的幫助。

看來配置畢竟有問題。

由於我的目標是我的 API 的特定端口,我需要這樣做而不是 HTTP 的正常端口80

這是需要做的事情,而不是像下圖中那樣設置 HTTP 端口 80: 在此處輸入圖片說明

在我的情況下,它應該是Port: 5000 起初我認為將其保留為 80 是正確的,但我並沒有真正為我的 API 使用端口 80。

這實際上非常簡單,但對於所有開始使用 AWS 的人來說,所有這些配置對您和我來說都是新的,請小心。

DNS 記錄的下一步是將 A 記錄保留Alias to Application and Classic Load Balancer並訪問端點,您不再需要將其設置為https://mydomain:5000 ,只需https://mydomain就足夠了Application Load Balancer 已經在處理這個問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM