V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
jonssonyan
V2EX  ›  分享创造

一个通用的 Cloudflare Workers HTTP 反向代理,可用于代理(加速)任何 HTTP 请求,实测可以代理 GitHub 网页和 Docker 镜像仓库加速

  •  2
     
  •   jonssonyan · 104 天前 · 2317 次点击
    这是一个创建于 104 天前的主题,其中的信息可能已经有所发展或是发生改变。

    GitHub: https://github.com/jonssonyan/cf-workers-proxy

    可用于代理(加速)网页、接口、Docker/K8s 镜像仓库等任何 HTTP 请求,实测可以代理 GitHub 网页和 Docker 镜像仓库加速

    http_proxy

    起因是 Docker 镜像仓库被墙,找不到合适的替代,于是使用大善人的 Workers 实现 HTTP 反向代理,理论支持任何 HTTP 请求,最常见的应用就是代理各大镜像仓库。

    写的是一个通用版,针对单个域名的代理,功能如下:

    • 支持设置代理地址
    • 支持设置代理地址协议
    • 支持设置代理地址路径匹配
    • 支持支持设置 User-Agent 白名单
    • 支持设置 302 跳转地址

    举个例子,我只想代理 GitHub releases 文件,比如https://github.com/jonssonyan/h-ui/releases/download/v0.0.5/h-ui-linux-amd64https://github.com/jonssonyan/h-ui/archive/refs/tags/v0.0.5.zip

    环境变量可以设置为:

    最终效果是只代理域名为 github.com,用户是 jonssonyan ,该用户下所有仓库的 archive 和 releases 的 url (也可以通过正则来代理指定仓库的 url ),只允许来自 curl 的请求,如果不满足条件则重定向到 https://jonssonyan.com

    注意:

    • 如果请求代理失败,可能是 CF 分配了一个被墙的 IP ,这时候要做 IP 优选
    • Free 账户,每日 10 万次请求,如果代理网页请求会比较多,需要注意一下使用量
    第 1 条附言  ·  104 天前
    建议自用,设置 PATHNAME_REGEX 或 UA_REGEX ,并设置自定义域名,禁止代理全站,例如:GitHub ,否则导致账号被官方风控概不负责
    第 2 条附言  ·  103 天前
    发布了第一个正式版,支持更细致的请求过滤
    https://github.com/jonssonyan/cf-workers-proxy/releases/tag/v0.0.1

    1. 支持自定义代理地址 hostname
    2. 支持自定义代理地址协议
    3. 支持自定义代理地址路径正则表达式
    4. 支持自定义 User-Agent 白名单正则表达式
    5. 支持自定义 User-Agent 黑名单正则表达式
    6. 支持自定义 IP 白名单正则表达式
    7. 支持自定义 IP 黑名单正则表达式
    8. 支持自定义地区白名单正则表达式
    9. 支持自定义地区黑名单正则表达式
    10. 支持自定义 302 跳转地址
    11. 支持是否开启调试
    12. 支持 Nginx 伪装页面
    6 条回复    2024-07-30 10:30:25 +08:00
    daisyfloor
        1
    daisyfloor  
       104 天前
    jonssonyan
        2
    jonssonyan  
    OP
       104 天前
    @daisyfloor 反代被风控的概率是存在的,做自用镜像加速自用应该问题不大吧,因为我在 GitHub 看到很多通过 CF Workers 给 Docker 镜像加速的开源项目,原理也是反代,而且直接反代的整个 https://registry.hub.docker.com/ ,付费用户(每月 10 亿次请求)甚至开放给其他人使用。
    julyclyde
        3
    julyclyde  
       103 天前
    啥原理呢?按说不符合 HTTP 标准啊?
    julyclyde
        4
    julyclyde  
       103 天前
    哦。放在 path 里了……
    blankmiss
        5
    blankmiss  
       103 天前
    我记得这个会封号的 nodeseek 论坛有部分用户提到反代会封号
    jonssonyan
        6
    jonssonyan  
    OP
       102 天前
    @blankmiss 不放心就开 IP 白名单正则过滤,自用感觉问题不大
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1780 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 16:36 · PVG 00:36 · LAX 08:36 · JFK 11:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.