CoFireAgent
Reverse proxy · SPA · JVM · ASGI

架構與技術視角

典型多執行緒(polyglot)Web 堆疊:對外由反向代理統一 TLS 與 HTTP 路由;對內以路徑前綴劃分靜態資源、瀏覽器端應用與多個後端執行環境。各元件以容器封裝,透過橋接網路互通,僅將閘道與必要除錯埠暴露於主機。

設計要點

請求路徑(邏輯)

技術層次

Caddy(邊界層)

自動 HTTPS(ACME)、HTTP/2,並以宣告式設定組態路由樹handlehandle_path 決定轉發或靜態檔案服務。較具體的路由規則應排在泛匹配(例如 SPA 的 /st*)之前,避免前綴誤匹配。

Vue(瀏覽器端執行環境)

以 SPA 模型部署:建置階段決定 publicPath/路由 base,與閘道路徑對齊。生產環境由伺服器對非檔案路徑回退至 index.html,以支援 HTML5 History API。開發模式可另以 dev server 容器對外映射埠,與正式靜態託管解耦。

Spring Boot(JVM/servlet 容器)

內嵌 Tomcat;透過 server.servlet.context-path 掛載於閘道子路徑之下。適合傳統同步請求—回應、交易式資源與既有 Java 整合元件。API 契約可以 OpenAPI 產出,供型別生成與契約測試(依建置與 profile 啟用)。

Python(ASGI/LLM Interface)

以 Uvicorn 等伺服器承載 FastAPI(或其他 ASGI 應用),作為LLM 介面層:統一封裝模型供應商/推論後端、請求佇列與超時重試、輸入輸出正規化,並以清晰的 HTTP 契約對外提供能力。 閘道可使用 strip_prefix 語意,將對外 /py 對應到應用根路徑。

同一映像內常並行排程行程(如 cron)與 HTTP 行程,屬「單容器多程序」模式,需在資源與生命週期上自行權衡;亦可日後拆為獨立 worker 服務。

部署與演進(技術備註)

以 Docker Compose 描述服務拓撲與映像標籤;機密與環境差異透過環境檔注入,避免寫入映像層。延伸方向包括:將閘道與各服務映像分線建置與推送、於 CI 做映像簽章與漏洞掃描、以及以訊息佇列或 gRPC 在 Spring 與 Python 之間做非同步解耦——皆屬架構演進選項,與現有 HTTP 路由模式相容。