Skip to content

建立 2026-09-14 更新 2026-09-14

佈署

開發用 fastapi dev(自動重載、較鬆的預設)。上線改用 fastapi run 或直接跑 Uvicorn / Gunicorn,關掉 reload,並把應用放在反向代理後面。

開發與正式的指令

# 本機開發:監看檔案、方便除錯
uv run fastapi dev

# 正式:關閉 reload
uv run fastapi run

等價的常見寫法是指定 Uvicorn:

uvicorn main:app --host 0.0.0.0 --port 8000

多 worker 時由行程管理員或容器編排負責(例如 Gunicorn 搭配 uvicorn.workers.UvicornWorker,或 Kubernetes 開多個 replica)。worker 數量通常跟 CPU 有關,沒有萬能數字;先量測再調。

記得在 pyproject.toml 設定 entrypoint,CLI 與官方編輯器擴充套件才找得到應用:

[tool.fastapi]
entrypoint = "main:app"

上線前最少要處理的幾件事

  • 設定值:密鑰、資料庫 URL 放環境變數,可用 pydantic-settings。不要把 secret 寫進 Git。
  • CORS:只允許真正的前端來源。
  • HTTPS:交給反向代理(Nginx、Caddy、雲端 Load Balancer)或平台處理,應用本身通常聽 HTTP。
  • Proxy headers:前面有代理時,啟用對應設定,否則 request.url、HTTPS 轉向會錯。
  • 健康檢查:提供 /health 給負載平衡探測。
  • 不要開 debug reload:reload 會多一個監看行程,也不該暴露除錯頁。

Docker 的最小思路:映像只裝正式依賴、用非 root 使用者、CMDfastapi run --host 0.0.0.0 --port 8000,由編排工具做重啟與擴展。

官方雲端與其他平台

原作者團隊提供 FastAPI Cloud。登入後可用:

uv run fastapi deploy

這是官方支援的一鍵選項,不是唯一選項。FastAPI 是開源、基於標準的 ASGI 應用,也能佈到任何能跑 Uvicorn 的地方:自己的 VPS、Fly.io、Cloud Run、Azure、AWS…依你現有的基礎設施選即可。

想看「從零寫一支 API 再佈上去」的現場示範,原作者在 PyCon Italia 2025 的演講已收在 影音教學

進一步學習