2026年 OpenClaw Gateway 同機 Nginx 與 Caddy 反向代理選型
技術方案 2026-05-11

2026年 OpenClaw Gateway 同機 Nginx/Caddy 反向代理怎麼選?TLS 終結、WebSocket 升級、allowedOrigins 與 trusted-proxy 在獨佔遠端 Mac(SSH 無頭)上的可復現部署矩陣 + FAQ

把「對外 HTTPS/WSS」與「本機 Gateway 程序」拆成穩定邊界:反向代理負責 TLS 與升級,OpenClaw 專心處理會話與工具呼叫;本文用矩陣對齊 Nginx 與 Caddy 在同機、無頭維運下的取捨。

1. 同機部署時,你真正要鎖定的四件事

在獨佔遠端 Mac 上,Gateway 通常綁 127.0.0.1 或內網埠,由反向代理承接 443。此時錯誤很少出在「選了哪套代理」,而出在:對外網域、Origin/Host 是否一致、WebSocket 逾時鏈、以及誰被信任為上游(trusted-proxy)。

若你仍在確認 SSH 無頭上的 Gateway 安裝與埠轉發基線,可先對照 在遠端 Mac mini 上部署 OpenClaw 的 SSH 快速指南 ,再回來調整代理層,避免把「本機可連」誤判成「瀏覽器可連」。

2. Nginx 與 Caddy:可復現決策矩陣(同機、TLS、WS)

下列矩陣假設:單機單 Gateway、對外只有一個 FQDN、證書由代理終結(TLS offload),Gateway 僅 HTTP/WS 迴環。

維度 Nginx Caddy
設定心智負擔 指令塊多、但範本成熟;適合已有 Nginx 資產的團隊。 預設自動 HTTPS、檔案式站點區塊;適合快速上線與證書自動續期。
TLS/ACME 常搭配 certbot 或內建模組;續期要納入 launchd/cron 與 reload 劇本。 內建 ACME 流程較順;仍需明確綁定對外埠與防火牆放行。
WebSocket 升級 以 Upgrade/Connection 與讀取逾時對齊為主;行為可預期。 多數場景自動處理升級;仍建議顯式設定逾時與後端 idle。
可觀測性 access log 格式高度可自訂;便於餵給 Loki/Vector。 結構化日誌與 JSON 可配;團隊需統一欄位契約。
無頭 Mac 維運 brew 服務或 launchd 包一層 nginx -t 再 reload,回滾路徑清晰。 同樣建議 launchd 管理;注意權限目錄與證書儲存路徑備份。

務實結論:若組織已有 Nginx 標準庫與稽核範本,優先 Nginx;若你要在一天內把「HTTPS + WS + 自動證書」跑通,Caddy 通常更快。兩者都能把 Gateway 壓在迴環介面,關鍵是後續 allowedOrigins 與 trusted-proxy 是否與代理行為一致。

3. TLS 終結:把「對外網域」寫進 Runbook 的第一行

TLS 終結後,Gateway 看到的可能是 http://127.0.0.1:PORT。此時瀏覽器端的 Origin 仍是 https://你的網域,而內部轉發若丟失 X-Forwarded-Proto: https,部分應用會誤判為純 HTTP,進而影響 Cookie 安全旗標或重導迴圈。

建議在代理層固定注入:X-Forwarded-Proto、X-Forwarded-Host、(可選)X-Forwarded-Prefix。證書續期失敗時,策略應是「拒絕對外連線」而非悄悄回退自簽,避免客戶端靜默接受錯誤信任鏈。

4. WebSocket 升級:對齊三層逾時

OpenClaw 類閘道常見長連線。請把逾時當成「產品契約」同步到:① 反向代理讀取/傳送逾時;② 作業系統 TCP keepalive(視需要);③ Gateway 自身心跳/閒置關閉策略。只調其中一層會出現「偶發斷線、重連風暴」。

驗收時用真實瀏覽器與 wscat 各跑一次:確認 101 Switching Protocols、以及代理 access log 中升級路徑與後端埠一致。

5. allowedOrigins:與公開 URL 一字不差

最常見故障是「對外是 https://bot.example.com,設定檔卻寫 https://bot.example.com/」或混用 www/apex。瀏覽器 CORS 與部分 Gateway 白名單是字串比對思維,請把正式對外 URL(含 scheme 與埠)寫進設定,並在 Staging 用子網域完整演練一遍。

若你在 Gateway 內還掛了外掛 Hook 做 Tool Call 稽核,記得把「跨來源/內嵌面板」這類入口一併列入白名單演練;可參考 OpenClaw Plugin Hooks 生產落地 把稽核與逾時預算和代理層日誌對起來。

6. trusted-proxy:只信任迴環上的「那一跳」

啟用 trusted-proxy 的意義是:Gateway 願意採信 X-Forwarded-For 等標頭來還原客戶端 IP,以便做日誌、限流或地理策略。若信任範圍過大,內網任一機器都能偽造來源 IP。

同機經典做法是:只把 127.0.0.1/::1 列入信任清單,並禁止外網直連 Gateway 埠。若前面還有 CDN 或 L7 負載,則要改成信任 CDN 的固定出口或 Unix socket 單跳,並同步調整真實 IP 標頭名稱。

7. SSH 無頭上的可復現部署清單(摘要)

  1. Gateway 只聽迴環;防火牆只放行 443/80 給代理。
  2. launchd(或受控服務管理)先啟 Gateway,再啟代理,重啟順序寫死。
  3. 代理設定納入版本庫;變更前 nginx -t 或 Caddy 設定驗證指令必跑。
  4. 用腳本斷言:curl -I https://網域/health、WS 探針、以及 allowedOrigins 演練用例。

8. FAQ

Q:能不能讓瀏覽器直連 Gateway 埠省掉代理?
A:生產不建議。你會同時失去標準 TLS 管理、WSS 升級一致性,以及把 Gateway 暴露到非本機介面的攻擊面。

Q:CORS 正常但 WebSocket 仍 403?
A:多數與子協定、Cookie、或代理未轉發 Sec-WebSocket-* 有關;用瀏覽器開發者工具對照代理 access log 與 Gateway 日誌時間戳。

Q:trusted-proxy 開了之後限流失效?
A:檢查是否誤信內網大段;限流應基於「還原後的 IP」還是「直接連線 IP」要在設定與文件兩邊一致聲明。

Q:同機還要跑 CI/模擬器會不會搶埠?
A:用埠配置表與 lsof 基線掃描;把 Gateway 埠段與 CI 埠段在 Runbook 分區。

在 Mac mini 上,閘道與代理更適合長跑

反向代理 + Gateway 屬於典型「低互動、高可用」組合:機器重啟次數少、但要求啟動順序與網路邊界穩定。Apple Silicon Mac mini 在待機功耗與散熱噪音上通常優於同級塔式或自組 PC,適合放在機房或桌下 7×24 提供對外 HTTPS 入口;macOS 與 Homebrew 生態也能讓 Nginx/Caddy 的安裝與 launchd 編排維持可複製。

從安全與總體擁有成本看,Gatekeeper、SIP 與 FileVault 提供清楚基線,統一記憶體架構也有利於同機多程序(代理、Gateway、輕量監控)並存。若你希望把本文的 TLS/WS/白名單策略落在最省心、最省電的硬體上,Mac mini M4 是目前非常值得考慮的起點——現在即可入手,讓對外閘道與代理層真正可稽核、可復現。

推薦套餐

M4.S 暢銷款

10-Core 16GB 256GB
$105.9
/ 月起
立即獲取