AWS EKS中ALB Ingress移除URL路径app1/app2的实现方法咨询
在EKS中使用ALB Ingress实现URL路径重写
可以实现你需要的URL重写需求,通过AWS ALB Ingress控制器的路径重写注解就能完成,具体配置方法如下:
核心配置思路
利用ALB Ingress控制器的alb.ingress.kubernetes.io/rewrite-target注解,结合正则路径匹配,将/app1/xxx或/app2/xxx格式的请求路径重写为/xxx,移除前缀的app1/app2部分。
完整Ingress配置示例
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: app-service-ingress annotations: kubernetes.io/ingress.class: alb alb.ingress.kubernetes.io/scheme: internet-facing alb.ingress.kubernetes.io/target-type: ip # 指定重写规则:将捕获的路径部分替换为目标路径 alb.ingress.kubernetes.io/rewrite-target: "/$1" spec: rules: - host: app.service.com http: paths: # 匹配/app1/开头的所有路径,捕获/app1/之后的内容为$1 - path: "/app1/(.*)" pathType: ImplementationSpecific backend: service: name: your-app-service port: number: 80 # 匹配/app2/开头的所有路径,捕获/app2/之后的内容为$1 - path: "/app2/(.*)" pathType: ImplementationSpecific backend: service: name: your-app-service port: number: 80
配置说明
- 路径匹配规则:
/app1/(.*)和/app2/(.*)使用正则表达式,捕获/app1/或/app2/之后的所有内容(例如regions),并将其存储为变量$1。 - 重写目标:
rewrite-target: "/$1"会将原始请求路径替换为/$1,也就是直接去掉/app1或/app2前缀,最终请求路径变为/regions。 - 路径类型:
pathType: ImplementationSpecific是因为ALB有自己的路径匹配逻辑,需要指定该类型来启用正则匹配。 - 服务指向:两个路径规则都指向同一个后端服务
your-app-service,符合你两个路径运行相同应用的场景。
注意事项
- 确保你的EKS集群已经正确部署了AWS ALB Ingress控制器,版本建议在v1.1.0及以上(该版本开始支持重写注解)。
- 该规则支持多级路径重写,例如
/app1/regions/us会被重写为/regions/us,完全适配你的需求。 - 如果需要HTTPS访问,可额外添加SSL证书相关注解(如
alb.ingress.kubernetes.io/certificate-arn)配置证书。
内容的提问来源于stack exchange,提问作者user14856694
相关产品推荐
相关产品推荐

