Mobile wallpaper
858 字
4 分钟

使用Nginx Proxy Manager搭建自己的Huggingface镜像站

2025-03-01
2025-09-22
浏览量 加载中...
本文主要内容

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

2025-09-22: 添加xethub链接反代

众所周知,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
    1. location /b3k3EnxpRbqvuomRASVE3/ {
      proxy_pass https://cdn-lfs-us-1.hf.co/;
      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;
      }
    2. location /3z7eaA2TmkKAfVdKGHMqzuGc5RdiPHBb/ {
      proxy_pass https://transfer.xethub.hf.co/;
      proxy_ssl_server_name on;
      proxy_ssl_name transfer.xethub.hf.co;
      proxy_set_header Host transfer.xethub.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;
      }
    3. location /BxZtnutU8K7si8kDtNpGJfpMNFCF3xHu/ {
      proxy_pass https://cas-server.xethub.hf.co/;
      proxy_ssl_server_name on;
      proxy_ssl_name cas-server.xethub.hf.co;
      proxy_set_header Host cas-server.xethub.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;
      }
    4. location /SyiDVN7og9c65PiesJj6ArNthsDjXnGz/ {
      proxy_pass https://cas-bridge.xethub.hf.co/;
      proxy_ssl_server_name on;
      proxy_ssl_name cas-bridge.xethub.hf.co;
      proxy_set_header Host cas-bridge.xethub.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;
      }
    1. location可以自行设置
    2. 这里代表的含义是当你访问https://example.com/b3k3EnxpRbqvuomRASVE3/repos/***.bin下载LFS文件的时候,实际上访问的是https://cdn-lfs-us-1.hf.co/repos/***.bin,但是这不代表你是通过原Huggingface CDN连接下载,而是你是通过你的VPS->VPS访问文件->VPS传输回来给你的。

设置实际访问的反代链接#

  1. 还是在Custom Location,填入如下配置:

    location /jZPU8pzjCweCDUiXxGB9B/ {
    proxy_pass https://huggingface.co/;
    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://exmaple.com/b3k3EnxpRbqvuomRASVE3;
    proxy_redirect https://transfer.xethub.hf.co https://example.com/3z7eaA2TmkKAfVdKGHMqzuGc5RdiPHBb;
    proxy_redirect https://cas-server.xethub.hf.co https://example.com/BxZtnutU8K7si8kDtNpGJfpMNFCF3xHu;
    proxy_redirect https://cas-bridge.xethub.hf.co https://example.com/SyiDVN7og9c65PiesJj6ArNthsDjXnGz;
    proxy_redirect https://huggingface.co https://example.com/jZPU8pzjCweCDUiXxGB9B/;
    add_header Set-Cookie "access_granted=true; Path=/;"; # Path=/ 表示 Cookie 对整个域名有效
    }
    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是会话级的,关闭窗口一段时间后会失效,要重新访问正确的连接才可以。

使用Nginx Proxy Manager搭建自己的Huggingface镜像站
https://blog.useforall.com/posts/11/
最后更新于 2025-09-22,距今已过 55 天

部分内容可能已过时

评论区

目录