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

Next.js动态路由部署AWS后失效报502错误求助

解决Next.js动态路由502错误的排查方案

1. 检查CloudFront缓存行为配置

  • 针对动态路由(如/pagename/*),确保缓存行为设置正确:
    • 将Viewer Protocol Policy设为Redirect HTTP to HTTPS(若使用HTTPS)
    • Allowed HTTP Methods需包含GET, HEAD, OPTIONS, PUT, POST, PATCH, DELETE,避免请求方法被拦截
    • 动态路由需禁用缓存,可选择Managed-CachingDisabled缓存策略,或配置缓存键包含完整路径与查询参数
    • 确认Origin Request Policy会将完整请求路径(含动态参数)转发至ELB,不做截断或修改

2. 验证ELB目标组配置

  • 若使用Application Load Balancer,检查监听器规则:
    • 确保所有请求(含带动态参数的路径)都转发至EC2上Next.js服务的端口(默认3000)
    • 不要在ELB层面设置路径重写,避免丢失动态路由参数
    • 健康检查路径需用Next.js可正常响应的地址(如/),确保EC2实例被标记为健康状态,否则ELB不会转发请求

3. 确认EC2上的Next.js服务配置

  • 检查next.config.js中的basePath设置,避免与动态路由路径冲突
  • 验证EC2安全组规则,允许ELB访问Next.js服务端口(如3000)
  • 查看Next.js服务日志(如pm2 logs或终端输出),确认是否真的未收到动态路由请求:无日志则问题在CloudFront/ELB,有日志则针对性排查服务端错误

4. 测试链路各节点

  • 直接访问ELB域名测试动态路由:若正常,问题出在CloudFront;若异常,排查ELB或EC2
  • 直接访问EC2公网IP+端口测试动态路由:若正常,问题出在ELB;若异常,检查EC2上的Next.js服务

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 06:33:12