美文网首页
基于Traefik如何实现向后转发自动去掉前缀?

基于Traefik如何实现向后转发自动去掉前缀?

作者: 东风微鸣 | 来源:发表于2022-12-25 08:29 被阅读0次

    前言

    Traefik 是一个现代的 HTTP 反向代理和负载均衡器,使部署微服务变得容易。

    Traefik 可以与现有的多种基础设施组件(Docker、Swarm 模式、Kubernetes、Marathon、Consul、Etcd、Rancher、Amazon ECS...)集成,并自动和动态地配置自己。

    系列文章:

    实践中, 往往会有这样的需求, 用户输入的url是https://ewhisper.cn/alert-manager/#/alerts, 但是转发到后端要变成http://alertmanager:9093/#/alerts, 如何基于 Traefik on K8S 实现?

    答案是: 使用 StripPrefixRegex MiddleWare.

    实战

    直接创建如下的一个 MiddleWare:

    apiVersion: traefik.containo.us/v1alpha1
    kind: Middleware
    metadata:
      name: strip-prefix-1
    spec:
      stripPrefixRegex:
        regex:
          - /[^/]+/
    

    以上实现的功能就是去掉一层/<xxx>/ 前缀.

    去掉两层前缀

    去掉两层前缀也很简单:

    apiVersion: traefik.containo.us/v1alpha1
    kind: Middleware
    metadata:
      name: strip-prefix-2
    spec:
      stripPrefixRegex:
        regex:
          - /[^/]+/[^/]+/
    

    IngressRoute 使用

    直接这样使用:

    apiVersion: traefik.containo.us/v1alpha1
    kind: IngressRoute
    metadata:
      name: alertmanager
    spec:
      routes:
        - kind: Rule
          match: Host(`ewhisper.cn`) && PathPrefix(`/alertmanager/`)
          middlewares:
            - name: strip-prefix-1
          services:
            - name: alertmanager
              port: 9093
    

    🎉🎉🎉 完成!

    EOF

    三人行, 必有我师; 知识共享, 天下为公. 本文由东风微鸣技术博客 EWhisper.cn 编写.

    相关文章

      网友评论

          本文标题:基于Traefik如何实现向后转发自动去掉前缀?

          本文链接:https://www.haomeiwen.com/subject/feawqdtx.html