iT邦幫忙

2025 iThome 鐵人賽

DAY 6
0

前幾篇介紹了如何設定 Lightsail 主機以及如何上傳檔案,接著就要進入程式碼環節。

整體系統架構如下圖,以 Lightsail 作為運行基礎,要注意的是,不是把程式碼上雲,網頁應用程式就會運作。
中間需要透過 Apache 網頁伺服器和 WSGI 伺服器。

Q:為什麼不能直接使用 app.py ?
直接用 app.py 只能啟動 Flask 內建的開發伺服器,雖然比較單純,但在正式環境下效能差、無法同時處理多個連線,也缺乏安全機制,因此,只適合測試。

使用 Apache 搭配 WSGI,讓 Apache 處理大量請求和靜態資源,WSGI 再把動態請求交給 Flask,能夠確保效能和穩定性。

系統主要使用 Flask 框架開發,前端以 HTML/CSS/JavaScript 實作,後端程式則使用 Python 串接 Azure AI Vision、Azure OpenAI 進行文字辨識及處理,以及 Lightsail MySQL 資料庫進行資料存取。

在網域設定上,使用 DNS(例如 www.000.tw)指向 Lightsail 伺服器,讓使用者可以直接透過網址連線到系統。

https://ithelp.ithome.com.tw/upload/images/20250920/20169520XcHq3iJa1W.jpg

主要的檔案架構如下:

/var/www/flaskAPP
├── app.py                     # 主程式,啟動 Flask
├── clients.py                 # 資料庫相關功能
├── main.py                    # 用 FastAPI 建立資料庫連線
├── templates/                 # HTML 模板
│   ├── index.html             # 首頁
│   └── data_extract.html      # 資料下載頁面
└── static/                    # 靜態資源
    ├── css/
    │   ├── index_style.css
    │   └── data_extract_style.css
    ├── js/
    │   └── script.js
    └── img/
       └── logo.png

上一篇
【Day 05】如何將程式碼推上 Lighsail 執行個體
系列文
Lightsail Lab: Build Your AI-Powered Website6
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言