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

Next.js部署Vercel后生产环境仅登录API出现502错误求排查

部署Vercel后登录API 502错误的原因分析

结合你提供的nextConfig配置,问题主要出在rewrites规则的地址拼接错误上:

1. API重写的地址缺少关键斜杠

第一个重写规则的目标地址拼接存在格式问题:

destination: `http://${process.env.API}api/:path*`,

如果process.env.API的值是类似api.example.com这种不带末尾斜杠的域名,拼接后会变成http://api.example.comapi/:path*——域名和api路径直接连在一起,导致目标地址完全无效。Vercel无法把请求转发到正确的API服务器,自然返回502错误。

开发环境能正常运行,大概率是你本地API的地址格式刚好兼容(比如本地API地址是localhost:3000/带末尾斜杠),所以没触发这个问题,但部署到Vercel后,环境变量的格式差异就暴露了错误。

2. 视频路径重写的语法错误

第二个重写规则也存在明显问题:

destination: `https://${process.env.CONVERT_DATA}:filename*`,

这里的:filename*应该改为/${filename*},冒号是Next.js路径参数的标识,目标地址里需要用斜杠来拼接实际路径,否则会把:filename*当成端口号的一部分,导致地址无效。不过这个错误暂时不影响登录API,但也需要修正。

修正方案

修改rewrites规则,确保地址拼接逻辑正确:

async rewrites() {
  return [
    {
      source: "/api/:path*",
      // 给API地址拼接时添加斜杠,避免域名和路径连在一起
      destination: `http://${process.env.API}/api/:path*`,
    },
    {
      source: "/video/:filename*",
      destination: `https://${process.env.CONVERT_DATA}/:filename*`,
    }
  ]
},

另外再确认下Vercel后台的环境变量API是否正确设置——注意不需要带http前缀,因为代码里已经手动加了http://。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 22:15:56