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

Next.js应用部署到CyberPanel后出现404问题求助

解决Next.js部署到CyberPanel(非默认3000端口)后404的问题

核心排查与修复步骤

1. 确认pm2运行的应用端口正确性

  • 执行命令 pm2 list,检查目标应用状态为online,同时确认启动命令里的端口参数(比如next start -p 8080这类指定自定义端口的命令)
  • 执行 lsof -i :自定义端口(例:lsof -i :8080),验证该端口是否被Next.js进程占用,排除端口冲突情况

2. 修正CyberPanel反向代理配置

CyberPanel默认转发请求到3000端口,需手动修改对应规则:

  1. 登录CyberPanel,进入目标网站的Website > Manage > Reverse Proxy页面
  2. 删除原有指向3000端口的代理规则
  3. 添加新规则:
    • Path 填写 /
    • Destination 填写 http://127.0.0.1:你的自定义端口(例:http://127.0.0.1:8080)
    • 勾选Enable WebSocket Support(适配Next.js部分功能需求)
  4. 保存配置后,执行命令 systemctl restart nginx 重启nginx服务

3. 确保Next.js生产构建完整

  • 必须在项目根目录执行 npm run build,确认无构建错误
  • pm2启动命令需用next start,禁止使用开发模式的npm run dev,避免端口监听或环境适配问题

4. 检查防火墙端口放行

如果服务器启用防火墙(如ufw、firewalld),需允许本地回环访问自定义端口:

  • ufw环境:执行 sudo ufw allow in from 127.0.0.1 to any port 你的自定义端口
  • firewalld环境:执行 sudo firewall-cmd --add-port=你的自定义端口/tcp --permanent,再执行 firewall-cmd --reload

5. 查看日志定位问题

若以上步骤无效,通过日志排查细节:

  • Next.js应用日志:执行 pm2 logs 你的应用名称
  • Nginx日志:在CyberPanel的Website > Manage > Logs查看,或直接访问服务器文件/var/log/nginx/你的域名.access.log、/var/log/nginx/你的域名.error.log

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 15:33:13