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

在AWS上与Laravel API分离部署Vue.js应用的高性能解决方案咨询

AWS环境下Vue + Laravel分离部署高性能方案

你遇到的S3托管Vue刷新404问题是history路由模式的共性问题,通过标准配置即可解决,以下是经过验证的生产级高性能部署方案:

核心架构:CloudFront + S3 托管前端 + 原有EB托管API

这是AWS生态下成本最低、性能最高的分离部署方案,静态资源访问延迟可低至几十毫秒,完全不影响原有Laravel服务的运行。

解决S3路由刷新报错的配置

  • 开启S3的静态网站托管功能,在「静态网站托管」配置项中,将索引文档设为index.html,错误文档也设为index.html
  • 额外配置S3存储桶的权限,关闭公共访问,仅允许CloudFront的服务角色读取存储桶内容,避免存储桶暴露
  • 在CloudFront中配置自定义错误响应:分别添加403、404错误的自定义规则,设置「HTTP响应代码」为200,「响应页路径」为/index.html,即可保证所有路由请求都正确返回入口文件

前后端请求配置(两种可选)

方案1:前后端同域名(无跨域,推荐)

在CloudFront中配置双源和路由行为:

  • 默认源指向存储Vue资源的S3桶,处理所有静态资源请求
  • 新增API源指向原有EB的负载均衡域名,添加行为规则匹配/api/*路径,缓存策略选择禁用缓存,所有/api开头的请求直接转发到Laravel服务
  • 该方案下前后端共用同一个域名,不需要额外配置CORS,也不会出现跨域鉴权的问题

方案2:前后端不同域名

  • 前端用独立域名解析到CloudFront,API用原有独立域名
  • 在Laravel的CORS配置中添加前端域名到允许列表,若使用Sanctum做用户鉴权,需要将前端域名添加到SANCTUM_STATEFUL_DOMAINS环境变量中

优化建议

  • Vue打包时开启资源哈希,配置不同资源的CloudFront缓存TTL:带哈希的js/css/图片资源可设置长缓存(7-30天),index.html设置短缓存或者不缓存,保证版本更新及时生效
  • 开启CloudFront的自动压缩功能,可减少60%以上的静态资源传输体积,提升加载速度

备选方案:ECS Fargate托管Vue应用

如果有自定义Nginx配置、服务端渲染等特殊需求,可以将Vue打包后基于Nginx构建镜像,在Nginx配置中添加try_files $uri $uri/ /index.html;规则解决路由问题,部署到ECS Fargate后挂载到负载均衡即可,该方案灵活性更高,但成本和维护复杂度高于S3+CloudFront方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 01:24:08