Ⅰ Streamlit:使用Docker在雲伺服器上部署Streamlit並綁定域名
為了實現雲伺服器上部署 Streamlit 並綁定域名的效果,本教程將分步指導,從購買雲伺服器開始,直至通過域名訪問 Streamlit 頁面。以下為實現這一目標的詳細步驟。
一、購買雲伺服器(已有可跳過)
如 @jackiexiao 教程所述,首先,購買一台適合部署 Streamlit 的雲伺服器。請參考教程前半部分了解如何選擇伺服器。
二、部署 Streamlit(實現 IP+埠訪問)
確保已獲得雲伺服器的公網 IP,使用 SSH 或 SFTP 遠程連接伺服器。
1. 通過 SSH 和 SFTP 連接伺服器
使用 ssh 或 xshell/vscode 等客戶端連接伺服器,確保連接成功後可以通過終端執行任意指令。
2. 傳輸整個 python 項目目錄至伺服器
將包含項目資源文件和 python 腳本的示例項目(my_st.zip)上傳至伺服器。創建同名目錄,並使用 sftp 上傳整個項目文件夾。
3. 安裝 Python 及其他庫
在伺服器終端安裝 Python 和 pip,並通過 pip 安裝 Streamlit 及其他所需庫。
4. 運行 Streamlit,發布頁面
進入項目目錄,運行 streamlit,發布網頁。確保使用 nohup 後台運行,關閉終端或 Ctrl+C 不影響進程。
三、使用 Docker 部署 Streamlit 以實現埠映射
為解決 Streamlit 無法設置為 80 埠訪問的問題,使用 Docker 實現埠映射。
1. 了解 Docker
Docker 是一個應用打包、分發和部署工具,提供輕量級虛擬環境。
2. 安裝 Docker
安裝 Docker 並切換到用戶賬號,如 ubuntu。
3. 創建 Docker 鏡像
在根目錄下創建 docker_file 目錄,並在其中編寫 Dockerfile。使用 docker 命令構建鏡像。
4. 運行 Docker 鏡像生成容器
運行鏡像生成容器,使用 docker 命令將容器埠映射到伺服器的 80 埠,實現通過公網 IP 訪問 Streamlit 頁面。
四、綁定域名
購買或擁有一個域名,完成備案,購買雲解析 DNS。在 DNS 控制台添加記錄,將域名解析至伺服器。通過域名訪問 Streamlit 頁面。
五、多個域名解析到多個埠
使用反向代理技術,如 Nginx,實現多個域名解析到多個埠。正在學習 Nginx 配置,後續將補充詳細步驟。
Ⅱ java web項目中有很多的圖片,如何存放
一般有兩種情況,
一種是前端開發需要顯示的圖片,這個是頁面構成必須的元素,一般這些會做 動靜分離,後台介面 跟 前端資源會部署在不同的伺服器上,有不同的優化,一般會有轉發的伺服器,判斷是後台介面,就轉發到後台的伺服器,如果是前端資源,就轉發到前台的伺服器。一般情況下,前端伺服器,跟後台的伺服器,是分離開的,有不同的人去管理,如果項目小的話,可能就全放在一個。這個優化的化,你可以去了解下 CDN原理。這個是用來優化靜態資源載入情況的。
另一種情況是,顯示的圖片,不是前端構成的,是用戶上傳文件產生的,這種情況下,現在一般有專門的對象存儲,用過 七牛雲,跟阿里的。這個的邏輯是文件上傳的時候,不是上傳到我們自己的伺服器,上傳到專門的雲伺服器,我們自己資料庫只需要保存這些上傳文件的地址,真正使用的時候,把連接給前端,前端自動會根據內容到專門的雲伺服器上去獲取。所有的安全,優化,帶寬,緩存命中,這些都有由雲伺服器去保證。 簡單來說,只有有錢,這些東西根本不會成為你項目的瓶頸。
作為技術,我們討論的應該不是這些。圖片會做備份,這個可以有專門的磁碟陣列去實現,簡單來說,就是上傳的內容保存到磁碟的時候,會自動多保存幾個備份到不同的磁碟上。還是那句話,多去了解下CDN的原理,最後這段,個人理解,不一定對。