簡體   English   中英

部署在 Amazon EC2 實例上時,Dash 應用程序無法運行

[英]Dash App not working when deployed on Amazon EC2 instance

一般來說,我是 linux/aws 的新手,我正在嘗試將 dash webapp 部署到 ec2 實例上。 webapp 是用 python 編寫的,並使用 aws 數據庫。 我創建了一個 EC2 實例,將安全組設置為允許所有流量,使用默認 VPC 和互聯網網關。 我成功安裝了所有應用程序依賴項,但無論何時我運行 app.py 文件。 公共 dns 不加載網頁。 我試過 ping 公共 IP 並且有效。 我真的有一個有限的知識基礎聽到並嘗試了不同的選擇,但似乎無法讓它發揮作用。 請幫忙:)

公共 IP-https://ec2-3-8-100-74.eu-west-2.compute.amazonaws.com/

安全組webapp

這幾天我一直在打我的頭,終於明白了。 我知道已經有一段時間了,但希望這對其他人有幫助。 很難在別處找到答案。 與您非常相似,我設置了 ec2 實例、安全組和 vpc 設置(這些步驟並不難,並且有據可查)。 我有一些成功的 ping,但通過瀏覽器收到“連接被拒絕”錯誤。

“app.run_server()”參數對我來說是缺失的部分:

if __name__ == '__main__':
    app.run_server(host= '0.0.0.0',port=80)

那時調用 .py 應用程序給了我一個“權限被拒絕”,我可以通過運行 sudo ("sudo python3 my_app.py") 和 sudo pip 安裝必要的包來解決這個問題。 (全部通過 ssh,fwiw)。

最終成功運行后,我從與我在 EC2 上的私有 IPv4 對應的儀表板應用程序中獲得了 IP,此時可以將我的瀏覽器設置為 PUBLIC IPv4 並訪問該應用程序。 胡扎。

稍微玩一下,它看起來就像只要你有:

host= '0.0.0.0'

您將在線運行它。 沒有它,它只能在本地運行(您會看到 IP 為 127.0.0.1)。 然后,確保您使用的任何端口(:80、:443、:8050)根據防火牆和安全組打開。 對我來說,Dash 默認為:8050,只要它允許通過安全組,該端口可能沒問題。

快速更新:

我嘗試將其保留在端口:8050 上,並且還向我的安全組中的所有 ipv4 開放:8050。 這讓我可以在不使用“sudo python3”的情況下成功運行所有內容。

if __name__ == '__main__':
    app.run_server(host= '0.0.0.0',port=80)

在 ssh 中使用“python3 my_app.py”

暫無
暫無

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

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