编辑
2026-09-17
Homelab
0
请注意,本文编写于 42 天前,最后修改于 42 天前,其中某些信息可能已经过时。

目录

现象及排查过程
访问逻辑
解决方法
结尾

现象及排查过程

  1. vanblog后台登录页面和点击登录后打开缓慢一直转圈,其他页面都正常访问
  2. 浏览器F12-network显示504 Gateway Time Out,/api/admin/meta挂起1.5分钟
  3. 到vanblog容器使用wget测试,测试不成功
  4. 云服务器cpu/内存/硬盘/IO都正常
  5. 检查vanblog、mongo日志无相关报错
  6. 使用AI检查mongo连接池,TCP连接等无明显异常,升级mongo4.4到5.0
  7. 最终原因/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容器中

bash
root@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左右完成

bash
root@wxh-server:/opt/docker/vanblog# docker commit 161026f4d99c mereith/van-blog:v1.0

修改docker-compose.yml的镜像,执行docker compose down && docker compose up -d,终于正常了 !!!

bash
image: mereith/van-blog:v1.0

结尾

手动试了下作者版本获取的网址,已经不能访问了,还试了作者的vanblog也无法访问了,不知道是什么情况。

功能作用:我猜测是提醒使用者有新版本更新的功能,登录后台时候触发给管理员看,也挺合理的,但是没有做成异步提醒或者超时的形式,因为版本无法访问更新直接访问后台受限就太尴尬了。

事实证明,免费的AI还是无法替代搜索的,花钱的就不好说了。

本文作者:油炸臭豆腐

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!