You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

本地正常的Bullboard UI部署到服务器后出现404错误求助

问题解决步骤

核心问题分析

  1. 路径不匹配:你在App.js中把BullBoard的基础路径设为了/admin,但实际访问的是/dashboard,导致路径对应不上。
  2. Nginx未代理BullBoard路径:当前Nginx仅代理了/api路径,/admin(或你要使用的/dashboard)请求被Nginx当作静态资源处理,找不到对应文件返回404。

解决方案

步骤1:统一访问路径(二选一)

选项A:修改App.js适配/dashboard访问路径

修改App.js中的BullBoard配置,把基础路径改为/dashboard:

const serverAdapter = new ExpressAdapter();
const bullBoard = createBullBoard({
  queues: [new BullMQAdapter(userStatsJobQueue)],
  serverAdapter: serverAdapter,
});
// 把basePath改为/dashboard
serverAdapter.setBasePath("/dashboard");

// 同时修改路由挂载路径
app.use(`/dashboard`, serverAdapter.getRouter());

选项B:使用/admin作为访问路径

直接访问example-domain/admin,无需修改App.js代码。

步骤2:修改Nginx配置,代理BullBoard路径

在Nginx的server块中添加对应路径的代理规则,和/api的配置一致:

server {
    server_name mydomain-server-name;

    root /home/ubuntu/my-project;
    index app.js;

    location / {
        try_files $uri $uri/ =404;
    }

    location /api {
        proxy_pass http://localhost:6969; 
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }

    # 添加BullBoard路径的代理,根据你选的选项替换路径
    location /dashboard { # 如果选了选项A用这个;选项B则改为 /admin
        proxy_pass http://localhost:6969; 
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }

    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/my-domain/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/my-domain/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

}

步骤3:重启服务生效

  1. 重启Node.js应用,确保配置修改生效。
  2. 重启Nginx服务:
sudo systemctl restart nginx

额外检查点

  • 确认Node.js应用的端口确实是6969(App.js中PORT=process.env.APP_PORT,需确保环境变量设置正确,或直接指定const PORT = 6969;测试)。
  • 确保Nginx配置文件没有语法错误,可通过sudo nginx -t验证。

内容的提问来源于stack exchange,提问作者Asfandyar Khan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 12:03:38