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

Next.js网站Vercel部署正常,AWS Amplify部署后现内部服务器错误求助

AWS Amplify部署Next.js出现内部服务器错误的调试步骤

1. 查看Amplify服务器日志

  • 进入Amplify控制台找到你的应用,切换到Monitoring标签页,查看Logs下的Web server logs和Function logs(如果有API路由或Serverless函数)
  • 重点看Next.js server logs里的报错堆栈,内部服务器错误的具体原因基本都在这里,比如模块缺失、环境变量没加载、文件路径错误等

2. 核对环境变量配置

  • 确认Amplify控制台App settings > Environment variables里的变量和Vercel完全一致,包括变量名和值(注意大小写敏感)
  • 带NEXT_PUBLIC_前缀的前端变量要确保配置正确,这类变量会注入到客户端代码
  • 可以在构建命令里加printenv,输出所有环境变量,验证是否正确加载

3. 检查构建配置

  • 打开Amplify的App settings > Build settings,核对amplify.yml:
    • 确保build命令是next build,如果是静态导出要加next export,并确认baseDirectory设置正确(默认.next,静态导出是out)
    • 同步Node.js版本和Vercel一致,Amplify默认版本可能偏旧,可在配置里指定:
      build:
        commands:
          - nvm use 18
          - npm run build
      

4. 验证路由与API路由

  • 如果用了API路由(pages/api或app/api):
    • 检查路由里的依赖是否都在package.json里声明,Amplify构建时会不会漏装
    • 直接访问/api/xxx查看具体报错,定位问题
  • 动态路由需要配置Amplify重写规则,指向index.html,可在amplify.yml的artifacts下加:
    rewrite:
      - source: /<*>
        target: /index.html
        status: 200
    

5. 本地模拟生产环境

  • 本地执行npm run build然后npm start,模拟Amplify的运行环境,看是否能正常启动,排除开发和生产构建的差异
  • 确认package-lock.json或yarn.lock已提交到仓库,避免依赖版本不一致导致问题
  • 不要用Vercel特有的功能(比如vercel.json配置),Amplify不支持,要转成对应配置

6. 尝试静态导出模式(可选)

  • 如果是纯静态站点,在next.config.js里加output: 'export',重新构建部署,排除SSR或ISR相关的服务器端问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 08:57:26