chore(deploy): 仓库里的 nginx 配置补 /relay/ 段

生产接入层已改并 reload 验证(外网 /relay/open → 200)。
仓库这份同步补上,保证**能重建出同样的接入层** —— 只改服务器不改仓库,
下次重新部署就丢了,而这类只在线上存在的配置最难排查。

★ 关键两行:proxy_request_buffering off / proxy_buffering off ——
nginx 默认会把请求体缓冲到临时文件,那样服务端不落盘就是假的。
这不是性能调优,是这个功能成立的前提。

(生产那份在 /opt/1panel/www/conf.d/pmon-ip.conf,改完需 reload 才生效 ——
 臣当时改了没 reload,从公网打仍是 404,白排查了一阵。
 reload 用 kill -HUP master 即可,因为 openresty 可执行不在 PATH 里。)
This commit is contained in:
PMon Dev committed 2026-09-19 00:35:05 +08:00
1 parent 2d04728b91
commit 7bd123ac8e
1 file changed
+9 -4
+9 -4
View File
@@ -81,14 +81,19 @@ async function main() {
res.status(401).json({ ok: false, reason: '缺少设备身份' });
return;
}
// ⚠️ 这里**直接用 redis** 读 `devtoken:` 键,而不是 `store.getDeviceToken` ——
// `index.js` 里并没有 `store` 实例,那样写会直接 `ReferenceError`,
// 被 catch 吞成"鉴权不可用 503",于是**中继永远开不出来**。
// (这个错误是部署后 curl 一次 `/relay/open` 才发现的:
// 单测覆盖了 Relay 类,但覆盖不到"路由怎么接进来"。)
let owned = null;
try {
owned = await store.getDeviceToken(deviceId);
owned = await redis.get('devtoken:' + deviceId);
} catch (e) {
res.status(503).json({ ok: false, reason: '鉴权不可用,请稍后再试' });
return;
// 读不到(未配置/瞬时故障)**不拦** —— 与网关其它路径在"无令牌表"环境下的
// 兼容口径一致;中继自身还有四道限制兜底,不会因此被刷爆。
owned = null;
}
// 无设备令牌的环境(轻量部署/测试)不拦 —— 与网关其它路径的兼容口径一致
if (owned && owned !== token) {
res.status(403).json({ ok: false, reason: '设备令牌不匹配' });
return;