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

为何ELB无法转发流量至EC2实例?如何解决HTTPS混合内容问题

问题诊断与解决方案

ELB未正常工作的排查步骤

1. 负载均衡器监听配置

  • 确认ELB已配置443端口的HTTPS监听,且关联的ACM证书状态为Issued(未过期、域名验证通过)
  • 检查HTTPS监听的转发规则:是否将流量转发至目标组的8080端口(匹配EC2上Spring Boot的监听端口)
  • 若保留80端口的HTTP监听,需配置重定向至HTTPS,避免用户或前端访问HTTP地址

2. 目标组配置验证

  • 目标组协议设为HTTP,端口指定8080,与EC2应用的监听端口一致
  • 健康检查配置:路径设为/meta/check,端口选8080,协议为HTTP,确认EC2实例在目标组中的状态为健康(不健康实例不会被ELB转发流量)
  • 确认目标组与EC2实例处于同一VPC,跨VPC会导致转发失败

3. 安全组规则检查

  • ELB安全组:允许入站的443(HTTPS)、80(HTTP,若需重定向)端口,来源可设为0.0.0.0/0或前端Amplify的IP范围
  • EC2安全组:仅允许来自ELB安全组的入站流量访问8080端口,禁止直接开放8080到公网(防止前端绕过ELB访问HTTP)
  • 确保ELB和EC2的出站规则允许必要流量(如ELB与ACM的通信、EC2的服务请求)

4. DNS与访问地址验证

  • 前端API请求必须指向ELB的域名(如xxx.elb.amazonaws.com或自定义域名),禁止直接调用EC2公网IP
  • 若使用自定义域名,需确认DNS服务(如Route 53)已将域名解析至ELB的域名

混合内容问题解决关键

  • 替换前端所有硬编码的EC2 IP/HTTP地址为ELB的HTTPS地址(格式:https://your-elb-domain.com/api/xxx)
  • 配置Spring Boot识别ELB转发的HTTPS协议:在application.properties中添加以下配置,确保应用返回的链接或资源路径使用HTTPS
    server.forward-headers-strategy=framework
    server.tomcat.remote-ip-header=x-forwarded-for
    server.tomcat.protocol-header=x-forwarded-proto
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 05:32:21