Cloudways Linode服务器部署Next.js应用出现404错误求助
解决Cloudways Linode服务器上Next.js应用404问题
排查PM2运行状态
- 确保已执行生产构建:在项目根目录运行
npm run build,确认无构建错误。 - 检查PM2启动命令正确性:必须用
pm2 start npm --name "next-app" -- run start启动生产服务,禁止使用dev命令(dev仅适用于开发环境)。 - 验证服务本地可达:在服务器终端执行
curl http://127.0.0.1:3002,若返回Next.js页面的HTML内容,说明服务本身正常;若仍404,通过pm2 logs查看服务日志定位启动异常问题。
修正.htaccess配置
替换现有.htaccess内容为以下规则,避免静态资源被错误代理,同时保留请求的查询参数:
RewriteEngine On RewriteBase / # 跳过已存在的静态文件和目录 RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # 将所有非静态请求代理到Next.js服务 RewriteRule ^(.*)$ http://127.0.0.1:3002/$1 [QSA,P,L]
检查Cloudways服务器配置
- 确认域名的文档根目录指向Next.js项目的根目录(而非
public或.next子目录),确保Apache能正确访问项目内的静态资源。 - 无需开放3002端口给外部(代理为本地转发),但需确保服务器内部无防火墙规则拦截
127.0.0.1:3002的请求。
额外注意事项
- 禁止使用
npm export:Next.js 13(尤其是App Router模式)不完全支持静态导出,你采用的是SSR部署模式,应坚持build + start的流程。 - 确认页面结构:若使用Pages Router,首页需放在
pages/index.js;若使用App Router,首页需放在app/page.js(本地能正常运行则结构大概率正确,可通过构建日志再次确认路径无错误)。
内容的提问来源于stack exchange,提问作者abhaya simha
相关产品推荐
相关产品推荐

