docmirror / dev-sidecar

开发者边车,github打不开,github加速,git clone加速,git release下载加速,stackoverflow加速
Mozilla Public License 2.0
14.92k stars 1.77k forks source link

feature: 拦截配置功能,允许匹配到多个 `域名匹配串` 下的拦截配置了,只要域名符合 `域名匹配串`。 #286

Closed wangliang181230 closed 6 months ago

wangliang181230 commented 6 months ago

Ⅰ. 描述此PR的作用:

  1. feature: 在匹配拦截配置时,可匹配到多个 ‘域名匹配符’ 下的拦截配置;
  2. optimize: 拦截配置中的proxy配置,可以使用绝对地址了,如:proxy: https://github.com/favicon.ico
  3. optimize: 拦截配置中的redirect配置,可以使用绝对地址了,如:redirect: https://github.com/favicon.ico
  4. optimize: 拦截配置中的redirect配置,可以使用 ${host} 了,如 proxy 配置;
  5. optimize: 拦截配置或远程配置中,可以配置某个配置项的值为 [delete],来移除某个配置了;(原版本只有远程配置可以移除配置值为null的配置项)

新功能配置举例及效果说明:

  1. 拦截配置如下:
    {
    "*.github.com": {
        ".*": {
            "sni": "baidu.com"
        },
        "xxx": {
            "yyy": "zzz"
        }
    },
    "github.com": {
        "/.*/.*/releases/download/": {
            "redirect": "gh.api.99988866.xyz/https://github.com",
            "desc": "release文件加速下载跳转地址"
        },
        "xxx": "[delete]" // 域名直接匹配,优先级更高,将会删除 `*.github.com` 中的 xxx 配置项。
    },
    "collect.github.com": {
        "/github/collect": {
            "success": true,
            "status": 204,
            "desc": "采集数据,快速成功"
        }
    }
    }
  2. 当访问域名 github.com 时,匹配到拦截配置:
    {
    ".*": {
        "sni": "baidu.com"
    },
    "xxx": {
        "yyy": "zzz"
    },
    "/.*/.*/releases/download/": {
        "redirect": "gh.api.99988866.xyz/https://github.com",
        "desc": "release文件加速下载跳转地址"
    }
    }
  3. 当访问域名 collect.github.com 时,匹配到拦截配置:
    {
    ".*": {
        "sni": "baidu.com"
    },
    "/github/collect": {
        "success": true,
        "status": 204,
        "desc": "采集数据,快速成功"
    }
    }

Ⅱ. 此PR修复了哪个issue吗?