编辑
2025-03-01
VPS
00
请注意,本文编写于 31 天前,最后修改于 31 天前,其中某些信息可能已经过时。

目录

组件说明
部署流程
反代Huggingface主站和LFS CDN下载节点
设置实际访问的反代链接

本文主要内容

使用NPM来创建一个自己的Huggingface镜像站,并设置URL Prefix来防止被自动采集后被被人使用。

众所周知,Huggingface不能国内直接访问,同时镜像站又存在速度限制,例如hf-mirror最高我这只有6MB/shf-mirror虽然开源了镜像站代码,但是实测无法运行(主要由于本人不会使用Caddy)。此外使用VPN虽然可以解决无法访问的情况,但是一直存在一个问题就是模型会越下越慢,哪怕开启TUN模式也没用,目前也没找到解决办法,所以至此萌生了使用NPM反代一个自己的镜像站。目前实测下载模型不会越下越慢,同时所有网页功能均可使用,包括登录注册等。

组件说明

部署流程

反代Huggingface主站和LFS CDN下载节点

  1. 如图配置,这里假设你用的域名是example.comimage.png
  2. 前往Custom Location设置直接访问https://example.com/时判断是否有我们自己设置的cookie,没有的话,不允许访问:
    # 检查 Cookie 是否存在 if ($http_cookie !~* "access_granted=true") { # key-value pair请一定跟后续配置的一样 return 403; # 或者 401, 502,根据你的需求选择合适的错误码 } # 如果 Cookie 存在,并且 URI 不是以 /jZPU8pzjCweCDUiXxGB9B/ 开头,则内部重写。 # 请注意替换为`设置实际访问的反代链接`部分设置的location,这里只是以我自己的location举例 if ($request_uri !~ "^/jZPU8pzjCweCDUiXxGB9B/") { rewrite ^/(.*)$ /jZPU8pzjCweCDUiXxGB9B/$1 last; # 使用 'last' 指令进行内部重写,并重新查找 location }
    image.png
  3. 反代下载节点,如图配置(请自行修改你需要的location):
    proxy_ssl_server_name on; proxy_ssl_name cdn-lfs-us-1.hf.co; proxy_set_header Host cdn-lfs-us-1.hf.co; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_buffering off; proxy_redirect off;
    image.png

    1. location可以自行设置,这里代表的含义是当你访问https://example.com/b3k3EnxpRbqvuomRASVE3/repos/***.bin下载LFS文件的时候,实际上访问的是https://cdn-lfs-us-1.hf.co/repos/***.bin,但是这不代表你是通过原Huggingface CDN连接下载,而是你是通过你的VPS->VPS访问文件->VPS传输回来给你的。

设置实际访问的反代链接

  1. 还是在Custom Location,如图配置:

    proxy_ssl_server_name on; proxy_ssl_name huggingface.co; proxy_set_header Host huggingface.co; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_buffering off; proxy_redirect https://cdn-lfs-us-1.hf.co https://example.com/b3k3EnxpRbqvuomRASVE3; proxy_redirect https://huggingface.co https://example.com/jZPU8pzjCweCDUiXxGB9B/; add_header Set-Cookie "access_granted=true; Path=/;"; # Path=/ 表示 Cookie 对整个域名有效。可以修改为你自己想要的key-value pair。

    image.png

    1. proxy_redirect https://cdn-lfs-us-1.hf.co https://example.com/b3k3EnxpRbqvuomRASVE3;:修改exmaple.com为你自己设置域名,修改/b3k3EnxpRbqvuomRASVE3上一部分第三步设置的location,记得不要最后的/
    2. proxy_redirect https://huggingface.co https://example.com/jZPU8pzjCweCDUiXxGB9B/;:修改exmaple.com为你自己设置域名,修改/jZPU8pzjCweCDUiXxGB9B/此步骤设置的location。
  2. 结束。至此,当正确访问https://example.com/jZPU8pzjCweCDUiXxGB9B/后,浏览器会设置一个cookie,也就是access_granted=true,此后哪怕没有输入正确的location,也可以正常访问,因为判断到浏览器有对应的cookie。注意这个cookie是会话级的,关闭窗口一段时间后会失效,要重新访问正确的连接才可以。

本文作者:Lim

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!