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

Laravel XHR请求因混合内容被拦截,ALB相关问题排查求助

解决混合内容问题的ALB/CloudFlare配置方案

问题根源

Laravel应用未正确识别外部的HTTPS请求——ALB和CloudFlare作为反向代理,会以HTTP协议将请求转发给后端应用,若应用未信任这些代理传递的请求头,就会生成HTTP而非HTTPS的XHR请求链接。

Amazon ALB配置调整

  • 确保ALB向后端转发X-Forwarded-Proto和X-Forwarded-For头:
    • 若使用AWS Load Balancer Controller管理EKS Ingress,给Ingress资源添加以下annotations:
      alb.ingress.kubernetes.io/backend-protocol: HTTP
      alb.ingress.kubernetes.io/listen-ports: '[{"HTTPS":443}, {"HTTP":80}]'
      alb.ingress.kubernetes.io/ssl-redirect: '443'
      alb.ingress.kubernetes.io/forward-headers: "X-Forwarded-Proto,X-Forwarded-For"
      
    • 检查目标组属性:确认“转发客户端IP”已启用,保证代理头能正确传递到后端Pod。

CloudFlare配置调整

  • 强制全站HTTPS:在SSL/TLS > Edge Certificates中开启始终使用HTTPS和自动HTTPS重定向,确保所有用户请求都以HTTPS发起。
  • 调整SSL模式:将SSL/TLS > Overview中的SSL模式设置为完全或严格(避免用“灵活”模式,该模式下CloudFlare到ALB的请求为HTTP,会导致ALB传递的X-Forwarded-Proto为HTTP)。
  • 确认头转发:在Network设置中开启HTTP/2,CloudFlare默认会转发X-Forwarded-Proto头,无需额外过滤。

Laravel辅助配置(关键)

应用运行在代理之后,需让Laravel信任ALB和CloudFlare的代理请求:

  • 在.env中添加:
    TRUSTED_PROXIES=*
    
    (生产环境建议替换为ALB和CloudFlare的具体IP段,提升安全性)
  • 确保config/trustedproxy.php中配置正确的代理头:
    'headers' => Illuminate\Http\Request::HEADER_X_FORWARDED_ALL,
    
    这会让Laravel优先使用X-Forwarded-Proto头判断请求协议,从而生成HTTPS链接。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 17:22:54