URL 重写

基本概念

ALB 可以在将请求转发到后端之前重写请求的 URL。 您可以使用正则表达式捕获组来重写 URL。

配置

通过 ingress 注解

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  nginx.ingress.kubernetes.io/rewrite-target: /$2
  name: demo
spec:
  ingressClassName: alb
  rules:
    - http:
        paths:
          - backend:
              service:
                name: frontend
                port:
                  number: 8080
            path: /(prefix-x)(/|$)(.*)
            pathType: ImplementationSpecific

通过 rule

apiVersion: crd.alauda.io/v1
kind: Rule
metadata:
  labels:
    alb2.cpaas.io/frontend: alb-00080
    alb2.cpaas.io/name: alb
  name: demo
  namespace: cpaas-system
spec:
  dslx:
    - type: URL
      values:
        - - REGEX
          - ^/(prefix-x)(/|$)(.*)
  rewrite_base: /(prefix-x)(/|$)(.*)
  rewrite_target: /$3

示例:客户端请求 /prefix-x/abc;后端接收到 /abc