Next.js API在Vercel生产环境频繁出现504网关超时问题
Next.js API部署Vercel后持续504超时问题
我将Next.js项目部署到Vercel生产环境后,所有API均出现504 Bad Gateway超时错误,但本地运行完全正常。为排查问题,我新增了一个极简的Hello GET接口:
export default function handler(req, res) { res.status(200).json({ message: 'Hello from Next.js!' }) }
但该接口同样返回504错误:
504: GATEWAY_TIMEOUT Code: FUNCTION_INVOCATION_TIMEOUT
查看Vercel日志发现,这个API偶尔能成功一次,但之后又持续报错。我的API代码都存放在项目根目录的src\pages\api路径下。
排查与解决建议
- 检查函数超时配置:确认
vercel.json中是否自定义了过短的函数超时时间,Vercel默认函数超时为10秒,若配置值小于这个数可能触发超时。 - 重置依赖后重新部署:删除
node_modules、package-lock.json(或yarn.lock),重新执行依赖安装后再部署,避免缓存的依赖包导致异常。 - 匹配部署与服务区域:如果API需要访问外部服务,确保Vercel项目的部署区域和外部服务所在区域一致,跨区域网络延迟可能引发超时。
- 排查冷启动或资源异常:偶尔成功的情况可能和Vercel函数冷启动的资源分配有关,可手动多次调用接口触发预热;若问题持续,联系Vercel支持确认是否存在节点资源异常。
- 确认路由路径规则:检查
src/pages/api下的文件结构是否符合Next.js路由规范,比如hello.js对应/api/hello,避免路径末尾斜杠或文件名错误导致的路由匹配问题。
内容的提问来源于stack exchange,提问作者Aflah Najeeb
相关产品推荐
相关产品推荐

