那棵树看起来生气了
nginx 反向代理,解决公共CDN访问速度过慢的问题
05/30
前言
之前一直在使用公共CDN来托管个人网站的静态文件,由于白嫖的人越来越多了,实在用不下去了,只能自己搭建优化了
如果网站面向的也是海外用户,直接使用cloudflare就已经很香了,如果是面向大陆用户,请往下看。
正文
公共CDN
默认已有一正常可使用的域名,该域名使用nginx代理
mycdn.omba.cc
这里以jsdelivr为例,使用mycdn.omba.cc代理jsdelivr
注意mycdn.omba.cc需要可以直接访问被代理的网站才行
给mycdn.omba.cc网站添加nginx反向代理
# mycdn.omba.cc nginx 反向代理设置
location /npm
{
# 代理配置
proxy_pass https://cdn.jsdelivr.net;
proxy_set_header Host $proxy_host;
proxy_set_header Accept-Encoding '';
proxy_ssl_server_name on;
proxy_ssl_name $proxy_host;
proxy_redirect / /;
# 缓存配置
proxy_cache jsdelivr;
proxy_cache_lock on;
proxy_cache_lock_timeout 15s;
proxy_cache_use_stale updating;
proxy_cache_background_update on;
proxy_cache_key $host$request_uri;
proxy_cache_valid 200 301 302 30d;
proxy_cache_valid 500 501 502 503 15s;
proxy_cache_valid any 5m;
}
proxy_cache_path /www/tmp/jsdelivr levels=1:2 use_temp_path=off keys_zone=jsdelivr:300m inactive=30d max_size=10g;
使用的时候,把jsdelivr的静态资源的域名直接替换成你的mycdn.omba.cc就行了
自定义CDN
有时候需要代理的不是公共CDN,而是自己已经部署的网站,则使用如下配置nginx反向代理即可。
加入已部署的网站需要被静态资源加速网站 blog2.omba.cc,加速域名还是mycdn.omba.cc
# mycdn.omba.cc 的nginx反向代理
location /custom_cdn
{
# 正则表达式匹配不是静态资源的全部过滤
if ($uri !~* \.(gif|png|jpg|css|js|woff|woff2|svg)) {return 403;}
# 代理配置
proxy_pass https://blog2.ombc.cc/;
add_header 'Access-Control-Allow-Origin' *;
proxy_set_header Host $proxy_host;
proxy_set_header Accept-Encoding '';
proxy_ssl_server_name on;
proxy_ssl_name $proxy_host;
proxy_redirect / /;
# 缓存配置
proxy_cache custom_cdn;
proxy_cache_lock on;
proxy_cache_lock_timeout 15s;
proxy_cache_use_stale updating;
proxy_cache_background_update on;
proxy_cache_key $host$request_uri;
proxy_cache_valid 200 301 302 30d;
proxy_cache_valid 500 501 502 503 15s;
proxy_cache_valid any 5m;
}
proxy_cache_path /www/tmp/custom_cdn levels=1:2 use_temp_path=off keys_zone=custom_cdn:300m inactive=30d max_size=10g;
使用的时候,把blog2.ombc.cc的静态资源的域名直接替换成你的mycdn.omba.cc/custom_cdn就可以了
三合一收款
下面三种方式都支持哦