50 lines
3.4 KiB
TOML
50 lines
3.4 KiB
TOML
# Wrangler 配置 — MessageWeave 多实例 LB/HA(ARCH-LB-WORKER / deployment.md §10)。
|
||
#
|
||
# 注意:TOML 只支持 '#' 注释。这里曾经用 JSDoc 的 /** */ 块,Cloudflare 的 TOML
|
||
# 解析器会把 '*' 当成未知字符(wrangler 报 Unknown character "47"),deploy /
|
||
# secret put / dev 在读取配置文件时就失败——所以全部展开成 '#' 行。
|
||
#
|
||
# 安全约束(docs/charter.md §3/§5,稳定 ID 注册表 §8):
|
||
# - 后端 origin 仅允许 https(C-HTTPS-INBOUND / C-HTTPS-URL);env 校验时拒绝
|
||
# http/非 https/内嵌凭据。
|
||
# - 不代理 Redis/JMAP(C-NO-DB / C-REDIS-ONLY-STATE):Worker 只做请求转发,后端连自己的 Redis。
|
||
# - 不使用 WebSocket/SSE/长轮询(C-NO-LONG-CONN):纯请求-响应转发。
|
||
# - 真 secret 不进代码/日志(SAF-LOG-PURITY / C-NO-SECRET-IN-IMAGE;C-LB-SHARED-SECRETS:
|
||
# 所有后端实例共享同一组 secret)。唯一明文例外是 [vars] 里的 BACKEND_ORIGINS_JSON——
|
||
# 它的值只是公开 https origin,不是凭据(见该段的「明文例外的边界」)。
|
||
# - 日志无密钥(SAF-LOG-PURITY):只打「方法/路径/origin/失败类别」,origin 清单走 secret。
|
||
# - 仅允许转发 safelist 路由(C-LB-SINGLE-REG-URL);未知路径 404。
|
||
#
|
||
# 部署:
|
||
# cd cloudflare-worker
|
||
# npx wrangler deploy
|
||
# BACKEND_ORIGINS_JSON 现在写在下方 [vars](见该段的注释与例外条款);
|
||
# 仅当里面出现非公开值时才改用 `npx wrangler secret put BACKEND_ORIGINS_JSON`。
|
||
|
||
name = "messageweave-lb"
|
||
main = "src/index.js"
|
||
compatibility_date = "2025-01-01"
|
||
compatibility_flags = ["nodejs_compat_v2"]
|
||
|
||
# 统一 HTTPS 入站(C-HTTPS-URL;平台代 TLS,Worker 内为短请求模型)。
|
||
# BACKEND_ORIGINS_JSON 只接受「字符串数组」——每项是一个 https origin;不支持
|
||
# {"url":…, "weight":…} 这种对象形式(parseBackendOrigin 只认字符串,对象项会让
|
||
# 整份配置解析失败,而配置是**每个请求**重新解析的,所以会表现为**每个请求都 503**,
|
||
# 不是启动即失败):
|
||
# BACKEND_ORIGINS_JSON 形如 ["https://a.platform1.example","https://b.platform2.example"]
|
||
# LB_HEALTH_TTL_MS 可选,健康缓存 TTL(默认 30000)
|
||
# LB_REQUEST_TIMEOUT_MS 可选,单 origin 超时(默认 10000,建议 > 最坏 cold start)
|
||
# LB_MAX_ATTEMPTS 可选,每请求最多 origin 尝试次数(默认 2:首次 + 1 次故障转移,
|
||
# 对应 deployment.md §10.4「有界重试其它实例(建议 1 次)」)
|
||
# LB_VERSION 版本标识,回显在 GET /healthz 的 JSON 里;用于确认线上是哪次部署
|
||
# 在回答(改 LB 逻辑的提交同时 bump 它)
|
||
#
|
||
# ⚠️ 明文例外的边界:[vars] 里的 origin 只能是**公开可达的 https origin**(当前就是)。
|
||
# 一旦出现内网地址、带内嵌凭据的 URL、或不想公开的 staging 主机名,立刻从 [vars] 删掉,
|
||
# 改用 `npx wrangler secret put BACKEND_ORIGINS_JSON`(git 历史不可逆,删掉不等于没进过库)。
|
||
# 其余三个 LB_* 调参保持可调、不写死,用 dashboard 的 Add Variable 覆盖默认值即可;
|
||
# LB_VERSION 是例外——它是版本标识,必须跟代码同版本、可 diff,写进 dashboard 反而容易漂。
|
||
[vars]
|
||
BACKEND_ORIGINS_JSON = '["https://messageweave-eu-1.motofans.club"]'
|
||
LB_VERSION = "2026.10.1"
|