反代jsdelivr.net自定义域名
•默认分类
2110
2
结合多个文章修改而来,本文使用腾讯云香港测试
如果你跟我一样使用的是lnmp.org搭建的,对应的nginx conf在/usr/local/nginx/conf/vhost
在server段之前,http之后添加
proxy_cache_path /tmp/JsdelivrCache levels=1:2 keys_zone=jsdelivr:20m max_size=10g inactive=180d
use_temp_path=off;
参数详解
proxy_cache_path 缓存文件路径 levels 设置缓存文件目录层次;levels=1:2 表示两级目录 keys_zone 设置缓存名字和共享内存大小.【在使用的地方要使用相同的变量名】 inactive 在指定时间内没人访问则被删除 max_size 最大缓存空间,如果缓存空间满,默认覆盖掉缓存时间最长的资源。
location / {
proxy_pass https://cdn.jsdelivr.net;
proxy_set_header Host cdn.jsdelivr.net;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_ssl_server_name on;
add_header X-Cache $upstream_cache_status;
proxy_ignore_headers Set-Cookie Cache-Control expires;
proxy_cache jsdelivr;
proxy_cache_key $host$uri$is_args$args;
proxy_cache_valid 200 180d;
expires 180d;
}
参数说明
proxy_cache后面的缓存名字必须和前面定义的缓存名字一致。 proxy_http_version 1.1; proxy_set_header Connection ""; 这两段表示使用http1.1协议与后端建立长连接可以避免反复开销连接降低速度,不设置会默认使用http1.0。 proxy_ssl_server_name on;代理ssl sni,这行必须配置,否则CDN会报错。 proxy_cache_valid 200 180d; 表示缓存状态码和过期时间,这里只缓存200的请求,并且缓存180日,缓存过期nginx会再次访问Jsdelivr
server内添加
location ~ .*\.(jpg|jpeg|gif|png|js|css)$ {
expires 30d;
access_log off;
valid_referers wej.cc *.wej.cc; #白名单域名
if ($invalid_referer){
return 403;
}
proxy_pass https://cdn.jsdelivr.net; #这一行很关键,必须添加
}
重启nginx即可,未在白名单来源的都会返回403,至于防盗链是可选的,如果你不怕自己的反代被他人使用,可以不加。
使用你自定义的域名开始加速吧
没搞懂 可以解释一下吗
哪里不懂呢?你用的什么程序