自建CDN配合Cloudflare加速

说起自建cdn,很多人一直觉得很难或者麻烦。之前习惯使用了Cloudflare免费cdn进行加速网站,但现在Cloudflare经常会出现抽风。

另外,国际阿里云目前有1年的新用户试用方案,速度上可以选择香港机房,国内访问优秀。不易注册的用户完全可以花几十块钱买成品号,呵呵!

1、源站放在kimsufi独立服务器上,kimsufi毒妇有点就是毒妇,硬盘大,价格便宜。但缺点也非常明显,就是国内速度慢。

3、源站和自建cdn均是LNMP一键包搭建的web环境。

4、Cloudflare是利用partner接入,可以cname和IP解析进行加速。PS:没有的用户可以使用闲吧搭建的,地址:https://cdn.xianba.org。

6、SSL用的Let’sEncrypt免费SSL。

国内用户访问自建CDN,也就是阿里云国际香港VPS,国外用户访问Cloudflare CDN,进行全面加速。

这点只需使用国内的DNSPOD进行解析即可。默认解析到自建CDN的阿里云香港VPS IP,国外解析解析到CF的加速IP。

那么问题来了,现在关键是如何搭建自建CDN,即阿里云香港VPS加速源站,访问的内容和源站一致。

闲吧采用的nginx的反代,实现自建CDN。具体方法如下:

修改 /etc/hosts 文件,添加如下内容:

mkdir -p /home/cache/temp
mkdir -p /home/cache/path
chown -R www:www /home/cache/temp
chown -R www:www /home/cache/path

在http段加入如下代码:

#limit_conn_zone $binary_remote_addr zone=perip:10m;
##If enable limit_conn_zone,add “limit_conn perip 10;” to server section.

#client_body_buffer_size 32k;
proxy_connect_timeout 300;
proxy_read_timeout 300;
proxy_send_timeout 300;
proxy_buffer_size 64k;
proxy_buffers 4 64k;
proxy_busy_buffers_size 128k;
proxy_temp_file_write_size 256k;
proxy_temp_path /home/cache/temp;
proxy_cache_path /home/cache/path levels=1:2 keys_zone=cache_one:256m inactive=1d max_size=10g;  //和上面的是一行哦

很明显,主要是最后的两行参数,这里稍后再解释。

在对于的位置加入以下代码:

listen 443 ssl http2;
#listen [::]:443 ssl http2;
server_name virmach.net;
index index.html index.htm index.php default.html default.htm default.php;
root /home/wwwroot/www.virmach.net;

ssl_certificate /usr/local/nginx/conf/ssl/virmach.net/fullchain.cer;
ssl_certificate_key /usr/local/nginx/conf/ssl/virmach.net/virmach.net.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers “TLS13-AES-256-GCM-SHA384:TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-128-GCM-SHA256:TLS13-AES-128-CCM-8-SHA256:TLS13-AES-128-CCM-SHA256:EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5”;
ssl_session_cache builtin:1000 shared:SSL:10m;
# openssl dhparam -out /usr/local/nginx/conf/ssl/dhparam.pem 2048
ssl_dhparam /usr/local/nginx/conf/ssl/dhparam.pem;

location / {
proxy_set_header Accept-Encoding “”;
proxy_pass https://virmach.net;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_cache cache_one;
proxy_cache_valid 200 304 30m;
proxy_cache_valid 301 24h;
proxy_cache_valid 500 502 503 504 30s;
proxy_cache_valid any 1s;
proxy_cache_min_uses 1;
expires 12h;
}

以上代码如何您加速的是http就放相应的代码块,如果您加速的是https就放到相应的代码块,闲吧反代的院长是https的,因此放在443端口的代码块。

这里提醒下,80端口直接301到443端口,代码如下:

经过以上修改后,基本算完成了。

以上自建CDN配置中,重要参数说明如下:

执行命令:lnmp restart

完成后,访问下,看是否反代成功。另外,可以到反代缓存目录看下是否有缓存文件。

如何成功了,到DNSPOD上进行相关解析,即可完成自建CDN和CF一起为网站加速了。

源站用的Let’sEncrypt免费SSL,那么香港vps上是否能使用Let’sEncrypt的免费SSL问题呢?

经过闲吧测试,Let’sEncrypt可以多次签发的。virmach.net源站SSL用的IP解析的方式签发的,香港VPS签发SSL时可以使用DNS的API获取,能成功。

另外,建议自建CDN站通过本地调试的方式先配置好【修改本地电脑的host文件】,之后再去修改DNS解析。

经过闲吧测试,目前还没有很好的解决,只能通过手动的方式进行搞定。实现方法如下:

这里特别提醒下,对照lnmp的版本,路径和参数稍微有点不一样。

编译  /usr/local/nginx/conf/vhost/virmach.net.conf 文件,在相应的位置添加以下代码。

location ~ /purge(/.*) {
#deny all;
proxy_cache_purge cache_one $host$1$is_args$args ;
}

很明显,是通过访问路径的方式进行清理。即添加purge参数即可,如清除https://virmach.net/xxx.html页面缓存,只需访问https://virmach.net/purge/xxx.html即可。

大佬们给出了自建cdn自动清除代码的方法,即提交数据时访问以上代码。具体代码如下:

<script>
$(document).ready(function(){
$(“#submit”).click(function(){
var uri = “https://virmach.net/purge” + window.location.pathname;
$.get(uri,function(data,status){ return true;});
});
});
</script>

注意修改代码中的网址。将virmach.net替换为自己的地址。

不过,以上代码,经过闲吧的测试,无法成功,不知道原因,这里只做测试分享。建议还是手动清除缓存。

自建CDN虽然麻烦,还会有各种问题,不过折腾还是很有意义,大家可以访问virmach.net试试,基本是秒开。作用相对的明显,不过目前阿里云国际香港VPS的试用IP带宽还是太少了,嘿嘿~

另外,博主会不断完善这个自建CDN教程,有疑问的网友们,欢迎留言。

原文链接:https://www.hztdst.com/1374.html

原创文章,作者:优速盾-小U,如若转载,请注明出处:https://www.cdnb.net/bbs/archives/6607

(0)
上一篇 2022年10月3日
下一篇 2022年10月3日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

优速盾注册领取大礼包www.cdnb.net
/sitemap.xml