本文主要内容
使用NPM来创建一个自己的Huggingface镜像站,并设置URL Prefix来防止被自动采集后被被人使用。
众所周知,Huggingface不能国内直接访问,同时镜像站又存在速度限制,例如hf-mirror
最高我这只有6MB/s
。hf-mirror
虽然开源了镜像站代码,但是实测无法运行(主要由于本人不会使用Caddy)。此外使用VPN虽然可以解决无法访问的情况,但是一直存在一个问题就是模型会越下越慢,哪怕开启TUN模式也没用,目前也没找到解决办法,所以至此萌生了使用NPM反代一个自己的镜像站。目前实测下载模型不会越下越慢,同时所有网页功能均可使用,包括登录注册等。
example.com
:
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 }
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;
注
location
可以自行设置,这里代表的含义是当你访问https://example.com/b3k3EnxpRbqvuomRASVE3/repos/***.bin
下载LFS文件的时候,实际上访问的是https://cdn-lfs-us-1.hf.co/repos/***.bin
,但是这不代表你是通过原Huggingface CDN连接下载,而是你是通过你的VPS->VPS访问文件->VPS传输回来给你的。还是在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。
注
proxy_redirect https://cdn-lfs-us-1.hf.co https://example.com/b3k3EnxpRbqvuomRASVE3;
:修改exmaple.com
为你自己设置域名,修改/b3k3EnxpRbqvuomRASVE3
为上一部分第三步
设置的location,记得不要最后的/
。proxy_redirect https://huggingface.co https://example.com/jZPU8pzjCweCDUiXxGB9B/;
:修改exmaple.com
为你自己设置域名,修改/jZPU8pzjCweCDUiXxGB9B/
为此步骤
设置的location。结束。至此,当正确访问https://example.com/jZPU8pzjCweCDUiXxGB9B/
后,浏览器会设置一个cookie
,也就是access_granted=true
,此后哪怕没有输入正确的location,也可以正常访问,因为判断到浏览器有对应的cookie
。注意这个cookie是会话级的,关闭窗口一段时间后会失效,要重新访问正确的连接才可以。
本文作者:Lim
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!