504 Gateway Time Out,/api/admin/meta挂起1.5分钟/api/admin/meta接口内部串行 await 调用getVersionFromServer(),后端 Node 使用 axios 请求外网api.mereith.com,axios 没有设置 timeout。容器外网访问阻塞时,axios 请求永久 pending,Promise 不 resolve 也不 reject,接口卡住不返回,前端页面转圈https://www.dong-blog.fun/post/1958
PS:通过这个vanblog二次开发博主的文章解决
问题出在node代码里
浏览器---》npm---》vanblog内置caddy---》node---》mongoDB
定位到问题点就很方便解决了
进入到vanblog容器中
bashroot@wxh-server:/opt/docker/vanblog# docker exec -it vanblog-vanblog-1 sh
给/app/server/utils/getVersion.js文件添加一行
js/app # cat /app/server/utils/getVersion.js
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getVersionFromServer = void 0;
const axios_1 = __importDefault(require("axios"));
const getVersionFromServer = async () => {
return null; //添加此行
try {
let { data } = await axios_1.default.get('https://api.mereith.com/vanblog/version');
data = (data === null || data === void 0 ? void 0 : data.data) || {};
if (!(data === null || data === void 0 ? void 0 : data.version)) {
return null;
}
return {
version: data.version,
updatedAt: (data === null || data === void 0 ? void 0 : data.updatedAt) || (data === null || data === void 0 ? void 0 : data.upadtedAt),
};
}
catch (err) {
return null;
}
};
exit退出容器,提交容器为新镜像,等待1min左右完成
bashroot@wxh-server:/opt/docker/vanblog# docker commit 161026f4d99c mereith/van-blog:v1.0
修改docker-compose.yml的镜像,执行docker compose down && docker compose up -d,终于正常了 !!!
bashimage: mereith/van-blog:v1.0
手动试了下作者版本获取的网址,已经不能访问了,还试了作者的vanblog也无法访问了,不知道是什么情况。
功能作用:我猜测是提醒使用者有新版本更新的功能,登录后台时候触发给管理员看,也挺合理的,但是没有做成异步提醒或者超时的形式,因为版本无法访问更新直接访问后台受限就太尴尬了。
事实证明,免费的AI还是无法替代搜索的,花钱的就不好说了。
本文作者:油炸臭豆腐
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!