VPS 自建 LLM 网关实战:one-api + OpenClaw + n8n + 监控面板优化全记录

第 5 页:踩过的坑

坑 1:Turbopack 的 fs 静态分析

Next.js 16 的 Turbopack 对 fs.existsSync(变量) 会尝试静态分析,导致整个项目被打包。解决:加 /*turbopackIgnore: true*/。

坑 2:geoip-lite 的 /ROOT 大写路径 Bug

Turbopack 把 geoip-lite 内联进 chunk,数据文件路径被硬编码成大写 /ROOT/...,运行时报 ENOENT。解决:用 eval("require") 绕开静态分析。

坑 3:PM2 进程打架

手动 kill 3003 后,PM2 立即自动重启,while kill 循环导致 PID 疯狂递增。解决:统一用 pm2 restart vps-monitor。

坑 4:bash 转义崩溃

在 bash -c '...' 里写含单引号、反引号、SQL 的长文本,shell 解析崩溃。解决:改用 Python heredoc。

python3 << 'PYEOF'
content = r'''...'''
open(path, "w").write(content)
PYEOF

坑 5:NVIDIA IP 级限流

短时间内连续发 40+ 次请求,会导致大量 TimeoutError(NVIDIA 静默断连)。健康检查必须慢速(≥5 秒间隔)。

坑 6:model_mapping 是「上游重写」不是「模型别名」

one-api 的 model_mapping 只在「找到渠道后」才生效,用于改写发给上游的模型名。入站匹配还是靠 abilities 表 + models 字段。想「请求 A 实际走 B」,需要在渠道的 models 字段加上 A。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注