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

AWS ALB路径路由配置故障求助:带路径访问转发失败

ALB路径路由失败问题排查与最佳实践

问题描述

在Application Load Balancer(ALB)后方部署3台实例,配置路径路由规则(如访问/ui时转发到5001端口对应的目标组),根路径访问正常,但带路径的地址(如/ui/)访问失败。已验证实例健康状态正常,推测问题出在端点或目标组配置;同时疑问:是否必须在应用中配置/ui或/grafana这类路径?

核心原因

ALB默认会将完整的请求路径(包括/ui/这类前缀)转发给后端应用,但你的后端应用本身没有这些前缀路径,导致返回404错误。不需要在应用中配置对应路径,只需在ALB的转发规则中添加路径重写,剥离前缀后再转发给后端即可。

解决方案:修改ALB路由规则,添加路径重写

在每个aws_lb_listener_rule的action块中,加入path_modification配置,将请求路径中的前缀替换为后端应用能识别的路径(通常是根路径/*)。

修正后的关键代码示例(以App UI规则为例)

resource "aws_lb_listener_rule" "app_ui_rule" {
  listener_arn = aws_lb_listener.http.arn
  priority     = 100

  action {
    type             = "forward"
    target_group_arn = aws_lb_target_group.app_ui_target_group.arn

    # 路径重写:将/ui/* 替换为 /*,剥离前缀后转发给后端
    path_modification {
      type  = "replace"
      value = "/*"
    }
  }

  condition {
    path_pattern {
      values = ["/ui", "/ui/*"] # 同时匹配/ui和/ui/*两种访问场景
    }
  }
}

其他路由规则的统一修正示例(以Grafana为例)

resource "aws_lb_listener_rule" "grafana_rule" {
  listener_arn = aws_lb_listener.http.arn
  priority     = 160

  action {
    type             = "forward"
    target_group_arn = aws_lb_target_group.grafana_target_group.arn

    path_modification {
      type  = "replace"
      value = "/*"
    }
  }

  condition {
    path_pattern {
      values = ["/grafana", "/grafana/*"]
    }
  }
}

所有如/metrics、/mongo-express的路由规则都需添加相同的路径重写配置。

端点配置最佳实践

  • 覆盖完整路径场景:路由条件中同时配置/prefix和/prefix/*,避免用户访问/prefix时匹配不到规则(默认走根路径转发逻辑)。
  • 路径重写必对应:每个带前缀的路由规则都要配置路径重写,剥离ALB的路由标识前缀。
  • 健康检查保持现状:目标组的健康检查路径维持/即可,因为后端应用的健康检查端点确实是根路径。
  • 优先级合理排序:确保路由规则的priority数值合理(数值越小优先级越高),避免高优先级规则覆盖低优先级规则。
  • 生产环境启用HTTPS:建议配置443端口的HTTPS监听,通过AWS证书管理器配置SSL证书,避免明文传输。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 13:17:34