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

AWS Elastic Beanstalk部署Next.js应用后无法连接求助

问题排查指南:Next.js + Docker + AWS EBS 部署后无法连接

一、Docker配置与EBS端口映射问题

  1. 添加Dockerrun.aws.json指定端口映射
    AWS Elastic Beanstalk的Docker环境需要明确容器端口与主机端口的映射关系。你的Dockerfile仅声明EXPOSE 3000,但EBS无法自动识别端口转发规则。需在项目根目录创建Dockerrun.aws.json文件:

    {
      "AWSEBDockerrunVersion": "1",
      "Ports": [
        {
          "ContainerPort": 3000,
          "HostPort": 80
        }
      ]
    }
    

    该文件会告知EBS将主机80端口(默认对外访问端口)的流量转发至容器3000端口。

  2. 验证本地容器运行状态
    先在本地构建并运行容器,确认应用本身可正常访问:

    docker build -t nextjs-app .
    docker run -p 3000:3000 nextjs-app
    

    访问http://localhost:3000,若本地无法访问,优先解决应用本身问题(如依赖缺失、构建失败)。

二、GitHub Actions部署包问题

  1. 确认部署包完整性
    你的GitHub Action用zip -r deploy.zip . -x '*.git*'打包,需确保Dockerfile、Dockerrun.aws.json(若添加)、package.json、package-lock.json及build后的.next目录均在压缩包内。可本地执行打包命令后解压检查,避免遗漏关键文件。

  2. 查看EBS部署日志
    登录AWS控制台进入Elastic Beanstalk的XCR-env环境,查看版本历史和事件日志,排查部署过程中的报错(如Docker构建失败、容器启动异常),日志会显示具体错误原因。

三、VPC与网络配置问题

  1. 子网创建失败原因
    尝试创建192.168.0.0/24子网失败,大概率是该CIDR段已在当前AWS账户的其他VPC/子网中使用,或与目标VPC的主CIDR块冲突。可尝试更换CIDR段(如192.168.1.0/24),或在VPC控制台查看已有CIDR分配情况。

  2. VPC路由与子网关联检查

    • 确认公有子网已关联互联网网关(IGW),路由表中存在0.0.0.0/0 -> IGW的默认路由,确保EBS实例可被外部访问。
    • 若EBS部署时需拉取外部资源,私有子网需关联NAT网关,确保网络连通性。
  3. 安全组与网络ACL验证
    即使安全组开放了全量流量,仍需确认:

    • 安全组入站规则允许0.0.0.0/0访问80端口(对应配置的HostPort)。
    • 网络ACL(NACL)的入站、出站规则未限制相关流量(默认NACL允许全量,自定义后需检查)。

四、EBS环境配置检查

进入EBS环境的配置页面:

  • 查看软件配置项,确认Docker平台的端口配置正确。
  • 检查实例配置,确认实例类型的内存、CPU规格满足Next.js应用运行需求。

内容的提问来源于stack exchange,提问作者Om Hinge

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 07:16:16