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

AWS Elastic Beanstalk部署Laravel API遇504网关超时请求助

解决AWS Elastic Beanstalk Laravel API的504超时与ELB健康检查失败问题

一、修正目标组健康检查配置

  • 指定有效健康检查端点:Laravel API需配置专门的健康检查路由,避免根路径因路由拦截、权限验证返回非200状态码。在routes/api.php中添加:
    Route::get('/health', function () {
        return response()->json(['status' => 'ok'], 200);
    });
    
    随后在目标组配置中,将健康检查路径设为/api/health(匹配你的API前缀),协议与应用的HTTP/HTTPS设置保持一致。
  • 调整健康检查阈值与超时:
    • 健康阈值设为2(连续2次成功标记为健康),不健康阈值设为3(连续3次失败标记为不健康),减少偶发波动的影响;
    • 超时时间从默认5秒调整为10-15秒,间隔时间设为15秒,给实例足够的响应与恢复窗口。
  • 匹配端口与协议:确认目标组健康检查端口与应用监听端口一致(Elastic Beanstalk默认80/443,若Laravel通过Nginx反向代理到9000,需检查目标组是否指向80端口),协议同步应用的HTTP/HTTPS配置。

二、修复实例内应用健康状态

  • 检查Web服务器配置:确保Nginx/Apache的根目录指向Laravel的public文件夹,且无拦截健康检查路径的规则。
  • 排查应用日志:通过Elastic Beanstalk控制台下载实例日志,重点查看storage/logs/laravel.log和Web服务器日志,定位是否存在路由错误、依赖缺失或权限问题(如storage文件夹权限不足)。
  • 验证实例资源:检查EC2实例的CPU、内存使用率,若资源耗尽导致无法响应健康检查,可临时升级实例规格或优化Laravel性能(开启缓存、优化数据库查询)。

三、调整ELB连接相关设置

  • 修改负载均衡器空闲超时:将ELB的空闲超时从默认60秒调整为120秒,避免长请求被中断触发504错误。
  • 同步连接保持配置:确保目标组已启用“连接保持”,超时设为60秒以上,与ELB空闲超时匹配,避免频繁断开连接。

四、强制刷新环境与实例

  • 在Elastic Beanstalk控制台执行“重启应用服务器”操作,若配置变更未生效,可选择重建环境,确保新的健康检查配置被应用。
  • 手动标记实例健康:若实例持续显示不健康,可在EC2控制台的目标组中,手动将实例设置为“健康”,验证是否能恢复服务,排除偶发配置异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 06:34:59