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

AWS EKS Fargate集群ALB Ingress Controller路径跳转404问题求助

问题根因
  • 路径透传问题:当前Ingress配置将/foo路径完整透传给后端Nginx服务,而Nginx默认未配置/foo路径的路由规则,因此收到/foo请求时直接返回404
  • 路径匹配规则不完整:当前配置的path: /foo仅匹配严格前缀为/foo的请求,若需匹配/foo、/foo/bar等所有/foo开头的请求,需要调整路径规则适配
  • 缺少路径重写配置:你注释掉了alb.ingress.kubernetes.io/rewrite-target注解,未开启路径重写,导致Nginx收到的请求路径始终带有/foo前缀,无法匹配根路径下的资源
解决方案

方案1:配置Ingress路径重写(推荐,无需修改业务服务配置)

修改Ingress配置,调整路径匹配规则并开启路径重写,示例如下:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: "nginx-ingress"
  namespace: "default"
  annotations:
    kubernetes.io/ingress.class: alb
    alb.ingress.kubernetes.io/scheme: internet-facing
    alb.ingress.kubernetes.io/security-groups: sg-014b302d73097d083
    # 开启路径重写:把/foo/xxx格式的请求重写为/xxx转发给后端Nginx
    alb.ingress.kubernetes.io/rewrite-target: /$2
  labels:
    app: nginx-ingress
spec:
  rules:
  - http:
      paths:
      - path: /foo(/|$)(.*)
        pathType: Prefix
        backend:
          service:
            name: "nginx-service"
            port:
              number: 80
      - path: /*
        pathType: Prefix
        backend:
          service:
             name: "mydocker-svc"
             port: 
               number: 8080

配置修改完成后执行kubectl apply -f <你的ingress配置文件路径>,等待2-3分钟让ALB规则同步完成,即可同时正常访问两个服务:

  • 访问http://<ALB地址>/foo、http://<ALB地址>/foo/xxx走Nginx服务
  • 访问其他路径走mydocker-svc服务

方案2:适配服务前缀路径

如果不想修改Ingress配置,可以直接调整Nginx服务的配置,新增/foo前缀路径的路由规则,将/foo路径映射到对应的资源目录即可。

额外建议

你当前使用的v1.1.8版本ALB Ingress Controller已经停止维护,建议后续升级到AWS Load Balancer Controller v2以上版本,可适配更高版本EKS集群,同时支持更多负载均衡特性。

如果配置后仍然异常,可通过命令kubectl logs -n kube-system deployment/alb-ingress-controller查看控制器日志排查具体问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 19:45:03