Traefik rewrite path and prefixes

在dns资源有限,但是仍然要区分后端服务时,就需要使用 subdirectory 而不是 subdomain

常规来说,如果是 nginx ingress 或者 traefik 1,需要添加 annotation

参考以下官方文档,这里是 traefik2 的情况

https://doc.traefik.io/traefik/migration/v1-to-v2/#strip-and-rewrite-path-prefixes

这里使用的 namespace 是 my

先创建一个 nginx服务

再创建一个 clusterip 的 Service

使用下面的yaml

---
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
  name: myir
  namespace: my
spec:
  entryPoints:
    - web
  routes:
    - match: Host(`mynginx.lizhe.com`) && PathPrefix(`/mytest`)
      kind: Rule
      services:
        - name: mysvc
          port: 80
      middlewares:
        - name: my-stripprefix
---
apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
  name: my-stripprefix
  namespace: my
spec:
  stripPrefix:
    prefixes:
      - /mytest
Send a Message