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

EKS ALB Ingress Controller静态资源路径路由404问题

问题根因
  • 前端路由的pathType: Exact配置不符合业务需求:Exact模式仅会匹配路径**完全等同于/**的请求,所有根路径下的子路径(如/main.css、/main-5a17625f9c68d9c60c4c.js)都不会命中该规则,ALB无匹配转发规则时会直接返回404。
  • 路径顺序违反ALB Ingress的匹配逻辑:AWS Load Balancer Controller不会像原生Kubernetes Ingress那样自动按「最长路径优先」排序规则,生成的ALB监听器规则会严格按照paths字段的书写顺序从上到下匹配,命中第一条规则就直接转发,不会继续向后匹配。之前把前端/的Prefix规则放在/marketing/规则之前时,所有请求都会先命中根路径规则转发到前端,后端路由自然完全失效。
  • 带双斜杠的路径返回404本质也是未命中前端路由导致的,匹配逻辑修复后这类请求会正常转发到前端,如果业务需要自动规整连续斜杠,可以额外配置ALB重写规则做优化。
调整方法

核心做两处修改即可:

  1. 调换paths列表的规则顺序,把路径更长、匹配范围更精确的/marketing/后端规则放在最前面,保证该路径下的请求优先匹配到后端服务
  2. 将前端路由的pathType改为Prefix,保留path: /配置,放在规则列表最后,用来匹配所有未命中后端规则的请求(包括根路径、静态资源等)
  3. 可选配置:如果后端服务本身不识别/marketing前缀,即公网访问/marketing/api时,后端实际需要接收的路径为/api,可以添加alb.ingress.kubernetes.io/rewrite-target: /注解,转发前自动剥离路径中的/marketing前缀。

调整后的完整Ingress配置如下:

---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  annotations:
    alb.ingress.kubernetes.io/scheme: internet-facing
    alb.ingress.kubernetes.io/target-type: instance
    kubernetes.io/ingress.class: alb
    # 后端不需要/marketing前缀时再打开下面注解
    # alb.ingress.kubernetes.io/rewrite-target: /
  name: my-site
  namespace: my-site
spec:
  rules:
    - host: my-site.com
      http:
        paths:
          # 长路径规则必须靠前放置
          - backend:
              service:
                name: my-site-backend-service
                port:
                  number: 3000
            path: /marketing/
            pathType: Prefix
          # 根路径兜底规则放在最后
          - backend:
              service:
                name: my-site-front-end-service
                port:
                  number: 80
            path: /
            pathType: Prefix

配置生效后可以在EC2控制台的ALB监听器页确认规则顺序:优先级最高的规则匹配/marketing/*转发后端,最低优先级的兜底规则匹配/*转发前端,此时:

  • 访问根路径、根路径下的所有静态资源都会正常转发到前端服务,不再返回404
  • 访问/marketing/开头的路径会优先转发到后端服务,不会被前端规则拦截

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 20:39:20