一、组件简介
1)宝塔面板

宝塔面板是一款服务器管理软件,支持 windows 和 linux 系统,可以通过 Web 端轻松管理服务器,提升运维效率。例如:创建管理网站、FTP、数据库,拥有可视化文件管理器,可视化软件管理器,可视化 CPU、内存、流量监控图表,计划任务等功能。我们在这里只用到它的 LNMP/LAMP 一键安装功能。


linux(centos)版:
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && bash install.sh


windows 版:
http://download.bt.cn/win/panel/BtSoft.zip


说明:本文使用的服务器系统是 centos7.6,所以只演示 linux(centos)版。其他版本详情请访问宝塔面板官方网站:
https://www.bt.cn/
卸载宝塔面板的命令:
wget http://download.bt.cn/install/bt-uninstall.sh && sh bt-uninstall.sh

2)Fikker

Fikker 是一款跨平台(Windows/Linux)网站加速服务器软件。还同时提供强大的实时监控,防盗链,源站负载均衡,站点流量统计,URL 转向(Ajax 跨域 / 伪静态),黑名单管理等一站式解决方案,为网站必备之服务器软件。
总之一句话:我们将用 Fikker 自建 CDN,进行源站缓存加速
说明:Fikker 并不是开源软件,是收费软件,全功能免费是 7 天,具体收费详情请访问 Fikker 官网的报价网页:https://www.fikker.com/price.htm
但是呢,博主大表哥已经破解了 Fikker,现在我把我的全功能永久破解版链接地址发出来,大家可以下载破解版使用,功能和收费版一模一样,网上也有其他人发的破解版,但是骗子比较多,有的还有病毒,博主大表哥的破解版大家尽可放心使用,如有问题可随时来找我。如果博友不差钱的,可以选择官方收费版。
破解版百度云盘链接如下:
https://pan.baidu.com/s/1xMOZUunQcni3oZ09NKIIEA

3)BBR 算法

在使用 BBR 之前,我们首先要了解它是什么。BBR 是谷歌的研究成果,了解计算机网络的人都知道,在 TCP 连接中,由于需要维持连接的可靠性,引入了拥塞控制和流量管理的方法。Google BBR 就是谷歌公司提出的一个开源 TCP 拥塞控制的算法。在 linux 内核版本 4.9 及以上的内核版本中已被采用(截止 2019 年 5 月 15 日发稿时间,最新版的内核版本是 5.1.2)。对于该算法的分析,ss 不经过其它的任何的优化就能轻松的跑满带宽。(speedtest 测试或 fast 测试)。由于 Google BBR 非常新,任何低于 4.9 的 linux 内核版本都需要升级到 4.9 及以上才能使用,故若 VPS 本身内核版本较低的话,只有 KVM 架构的 VPS 才能使用本教程升级内核并使用,openvz 的 VPS 用户若内核版本较低则无法使用!博主大表哥亲测,开启 BBR 前后,同一个服务器,同一个下载包,同一个测试机,同一个 WIFI,
开启 BBR 前是:大约 260KB/s
开启 BBR 后是:大约 10MB/s
速度大约提升了 40 倍,简直是飞一般的感受!!!
注意一点:重要的事情说三遍,
只有 VPS(就是虚拟机)才能用!!!物理实体机不能用 BBR 算法!!!!
只有 VPS(就是虚拟机)才能用!!!物理实体机不能用 BBR 算法!!!!
只有 VPS(就是虚拟机)才能用!!!物理实体机不能用 BBR 算法!!!!

4)CloudXNS

这是博主大表哥建议的域名供应商,因为给域名添加解析的时候有选择线路类型的功能,比如移动线路、联通线路、电信线路、铁通线路、海外线路等等,你可以指定你的域名解析的时候走什么线路,大大可以缩短玩家的请求和响应时间,也可以起到加速的作用,同一个 IP 记录值可以选择好几种线路类型。
CloudXNS 官方网站:
https://www.cloudxns.net/
除此之外,大表哥还推荐腾讯的 DNSPOD,效果同样不错,DNSPOD 的官网:
https://www.dnspod.cn/

二、搭建过程

OS:centos7.6
服务器数目:2 台(1 台 CDN、1 台源站),由于是实验就 2 台,生产环境可以对源站和 CDN 扩充,可以做集群,Fikker 就有集群功能。
本次试验测试域名:www.007lhj.com
fikker(CDN):34.80.164.244 hostname:fikker-cdn
源站:35.229.244.15 hostname:web-yuanzhan

1)安装宝塔面板,一键部署 LNMP 环境

宝塔面板的具体安装和一键安装 LNMP 的操作,请参看我的另一篇的博文第六部分内容,一直看到 “恭喜,站点创建成功” 部分即可:
https://blog.51cto.com/zpf666/2391930
看到如下页面,说明你的站点创建成功:
宝塔面板+Fikker+BBR算法+CloudXNS---搭建一个简易的全球CDN缓存节点给网站加速

我们在站点根目录下创建一个 1G 的文件测试下载速度,具体操作如下:
[root@web-yuanzhan ~]# cd /www/wwwroot/www.007lhj.com
[root@web-yuanzhan www.007lhj.com]# ls
404.html index.html
[root@web-yuanzhan www.007lhj.com]# rm -rf 404.html index.html
[root@web-yuanzhan www.007lhj.com]# dd if=/dev/zero of=1G.zip bs=1024k count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 3.56463 s, 301 MB/s
[root@web-yuanzhan www.007lhj.com]# du -sh 1G.zip
1.0G 1G.zip
去浏览器下载 1G.zip 这个文件,我们看一下下载的速度:下面是博主随便截取的一张速度图:
宝塔面板+Fikker+BBR算法+CloudXNS---搭建一个简易的全球CDN缓存节点给网站加速

2)安装 BBR 算法
①在升级之前,您可以查看当前内核

[root@web-yuanzhan ~]# uname -r
3.10.0-957.10.1.el7.x86_64
如您所见,当前内核为 3.10.0,因此我们需要更新内核

②更新内核之前,先安装 ELRepo 仓库

导入公钥:
[root@web-yuanzhan ~]# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
安装 ELRepo 仓库:
[root@web-yuanzhan ~]# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm

③使用 ELRepo repo 安装最新的内核(新内核必须在 4.9.0 以上)

[root@web-yuanzhan ~]# yum --enablerepo=elrepo-kernel install kernel-ml -y

④确认结果

[root@web-yuanzhan ~]# rpm -qa | grep kernel
kernel-tools-3.10.0-957.10.1.el7.x86_64
kernel-ml-5.1.2-1.el7.elrepo.x86_64
kernel-tools-libs-3.10.0-957.10.1.el7.x86_64
kernel-3.10.0-957.10.1.el7.x86_64
kernel-devel-3.10.0-957.12.1.el7.x86_64
kernel-3.10.0-957.el7.x86_64
kernel-headers-3.10.0-957.12.1.el7.x86_64
如果安装成功,您应该看到类似于上面一列,其中 kernel-ml-5.1.2-1.el7.elrepo.x86_64 就在输出的列表中

⑤通过设置默认引导为 grub2 ,来启用 5.1.2 内核,首先
显示 grub2 菜单中的所有条目:

[root@web-yuanzhan ~]# egrep ^menuentry /etc/grub2.cfg | cut -f 2 -d \'
CentOS Linux (5.1.2-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (3.10.0-957.10.1.el7.x86_64) 7 (Core)
CentOS Linux (3.10.0-957.el7.x86_64) 7 (Core)
CentOS Linux (0-rescue-b3157f60d1ef5b83c40655e1ace8fdab) 7 (Core)

⑤由于行计数开始于 0 ,且 5.1.2 内核条目位于第一行,因此将默认引导条目应设置为 0

[root@web-yuanzhan ~]# grub2-set-default 0

⑥重启服务器,使新内核生效

[root@web-yuanzhan ~]# reboot

⑦重新运行 uname -r 命令以确认您使用的是正确的内核

[root@web-yuanzhan ~]# uname -r
5.1.2-1.el7.elrepo.x86_64
以上结果显示使用的是最新版的 5.1.2 内核

⑧启用 BBR 算法前,还需要修改 sysctl 配置

[root@web-yuanzhan ~]# echo 'net.core.default_qdisc=fq' | sudo tee -a /etc/sysctl.conf
[root@web-yuanzhan ~]# echo 'net.ipv4.tcp_congestion_control=bbr' | sudo tee -a /etc/sysctl.conf
[root@web-yuanzhan ~]# sysctl -p

⑨确认是否已经启用了 BBR

[root@web-yuanzhan ~]# sysctl net.ipv4.tcp_available_congestion_control
看到类似如下结果说明启用了 BRR:
net.ipv4.tcp_available_congestion_control = reno cubic bbr

⑩继续验证

[root@web-yuanzhan ~]# sysctl -n net.ipv4.tcp_congestion_control
看到类似如下结果说明启用了 BRR:
bbr

⑪检查内核模块是否已加载
[root@web-yuanzhan ~]# lsmod | grep bbr

看到类似如下结果说明启用了 BRR:
tcp_bbr 20480 5
至此 BBR 已经启用成功,我们再次去验证一下,网速是否增强。
宝塔面板+Fikker+BBR算法+CloudXNS---搭建一个简易的全球CDN缓存节点给网站加速

由前后两张下载速度的截图,我们可以看出;
启用 BBR 算法前的下载速度是:
35KB/s
启用 BBR 算法后的下载速度是:
10.6MB/s
后者是前者的 310 倍,就问你吊不吊。

⑫删除无用的旧内核

升级内核之后,往往老旧的内核也保留下来了,执行以下命令,将自动筛选并删除当前无用的系统内核版本。
[root@web-yuanzhan ~]# yum remove $(rpm -qa | grep kernel | grep -v $(uname -r))

3)安装 fikker,并做相关缓存配置
①安装 fikker
[root@fikker-cdn ~]# ls
fikkerd-3.7.6-linux-x86-64-crack.tar.gz
[root@fikker-cdn ~]# tar zxf fikkerd-3.7.6-linux-x86-64-crack.tar.gz
[root@fikker-cdn ~]# mv fikkerd-3.7.6-linux-x86-64 /usr/local/fikker
[root@fikker-cdn ~]# cd /usr/local/
[root@fikker-cdn local]# chmod 777 -R fikker/
[root@fikker-cdn local]# cd fikker/
[root@fikker-cdn fikker]# ./fikkerd.sh install && ./fikkerd.sh start
install fikkerd service ...
install fikkerd service OK!
checking disk cache index for public ... OK!
checking disk cache index for member ... OK!
checking disk cache index for visitor ... OK!
checking disk cache index for content ... OK!
Starting fikkerd [OK]

②防火墙上开启 80、443、6780 端口例外
[root@fikker-cdn fikker]# firewall-cmd --permanent --add-port=80/tcp
success
[root@fikker-cdn fikker]# firewall-cmd --permanent --add-port=443/tcp
success
[root@fikker-cdn fikker]# firewall-cmd --permanent --add-port=6780/tcp
success
[root@fikker-cdn fikker]# firewall-cmd --reload
success

③登录你的 fikker 后台
http://your-fikker-ip:6780/
管理员 / 监控员的初始密码:123456
宝塔面板+Fikker+BBR算法+CloudXNS---搭建一个简易的全球CDN缓存节点给网站加速
然后登录 fikker 后台,你可以看到大表哥破解版的授权结束日期:9999-12-31 12:20:21,如果是正式版,而是 7 天免费时间。
宝塔面板+Fikker+BBR算法+CloudXNS---搭建一个简易的全球CDN缓存节点给网站加速

④配置 fikker 后台
⑴主机管理里面添加您的网站域名和源站 IP
宝塔面板+Fikker+BBR算法+CloudXNS---搭建一个简易的全球CDN缓存节点给网站加速

宝塔面板+Fikker+BBR算法+CloudXNS---搭建一个简易的全球CDN缓存节点给网站加速

⑵页面缓存配置
Ⅰ、设置带有图片的静态页面的缓存规则
^.+.(jpg|jpeg|gif|bmp|png|ico|swf|css|js|txt|xls|cur)$
宝塔面板+Fikker+BBR算法+CloudXNS---搭建一个简易的全球CDN缓存节点给网站加速

Ⅱ、设置缓存首页的匹配规则
宝塔面板+Fikker+BBR算法+CloudXNS---搭建一个简易的全球CDN缓存节点给网站加速

Ⅲ、设置缓存视频的匹配规则
^.+.(m3u8|ts)$
宝塔面板+Fikker+BBR算法+CloudXNS---搭建一个简易的全球CDN缓存节点给网站加速

Ⅳ、设置新闻页面的缓存匹配规则
宝塔面板+Fikker+BBR算法+CloudXNS---搭建一个简易的全球CDN缓存节点给网站加速

⑶拒绝缓存配置
Ⅰ、动态页面不缓存
^.+.(php|aspx|asp|jsp|do|cgi|xhtml|shtml|htm|html|xml)(\??|\?.+)$
宝塔面板+Fikker+BBR算法+CloudXNS---搭建一个简易的全球CDN缓存节点给网站加速

Ⅱ、主页和目录页不缓存
^.+/(\??|\?.+)$
宝塔面板+Fikker+BBR算法+CloudXNS---搭建一个简易的全球CDN缓存节点给网站加速

Ⅲ、管理后台页面不缓存
宝塔面板+Fikker+BBR算法+CloudXNS---搭建一个简易的全球CDN缓存节点给网站加速

⑷硬盘缓存设置
宝塔面板+Fikker+BBR算法+CloudXNS---搭建一个简易的全球CDN缓存节点给网站加速
宝塔面板+Fikker+BBR算法+CloudXNS---搭建一个简易的全球CDN缓存节点给网站加速

⑸转向管理设置
Ⅰ、访问二级域名跳转设置

^007lhj\.com/(.*)$
http://www.007lhj.com/$1

宝塔面板+Fikker+BBR算法+CloudXNS---搭建一个简易的全球CDN缓存节点给网站加速

Ⅱ、访问任意主机头的域名的时候,跳转到 HTTPS

^www\.007lhj\.com/(.*)$
https://www.007lhj.com/$1

宝塔面板+Fikker+BBR算法+CloudXNS---搭建一个简易的全球CDN缓存节点给网站加速

⑹分量统计设置
Ⅰ、只统计首页流量
宝塔面板+Fikker+BBR算法+CloudXNS---搭建一个简易的全球CDN缓存节点给网站加速

Ⅱ、 统计站点 php 页面流量 (两种方法)
第一种:采用通配符匹配规则实现
宝塔面板+Fikker+BBR算法+CloudXNS---搭建一个简易的全球CDN缓存节点给网站加速
第二种:
^www\.007lhj\.com/.+\.php(.*)$
采用正则表达式匹配规则实现
宝塔面板+Fikker+BBR算法+CloudXNS---搭建一个简易的全球CDN缓存节点给网站加速

⑺防盗链管理
^www.007lhj.com/.+.(jpg|gif|png|ts|m3u8)$
宝塔面板+Fikker+BBR算法+CloudXNS---搭建一个简易的全球CDN缓存节点给网站加速

⑻黑名单设置
Ⅰ、屏蔽单个 IP 地址
宝塔面板+Fikker+BBR算法+CloudXNS---搭建一个简易的全球CDN缓存节点给网站加速

Ⅱ、屏蔽 IP 地址段
宝塔面板+Fikker+BBR算法+CloudXNS---搭建一个简易的全球CDN缓存节点给网站加速

⑼系统配置
宝塔面板+Fikker+BBR算法+CloudXNS---搭建一个简易的全球CDN缓存节点给网站加速

其实 Fikker 还有很多功能,比如页面缓存、实时监控、流量统计、转向管理、防 CCgongji 等等,但是免费版本不包括页面缓存,如果您需要缓存这个功能,那么建议购买他们的全功能商业版本,价格是 399 元 / 年。但是你用了博主的破解版,你就可以享用 Fikker 全功能商业版本。

通过上面的方法,您可以在全球架设多个节点,如果您的节点比较多,那么还可以通过他们的主控系统来集中化管理。
宝塔面板+Fikker+BBR算法+CloudXNS---搭建一个简易的全球CDN缓存节点给网站加速
Fikker 主控端下载地址
https://www.fikker.com/dl/FikkerCDN.zip

如果你的网站基本上全是图片,可以不使用 Fikker,缓存服务器也安装宝塔面板来完成,具体的操作请借鉴如下网址:
https://www.openos.org/post/107/

4)智能 DNS 解析
配置好了源站和 Fikker (CDN),最后就可以去 CloudXNS 里面,把域名的解析地址改成 CDN 服务器的 IP,前面做 BBR 的实验的时候解析改的是源站的 IP,现在 CDN 已经搭建好了,就把解析改成 CDN 的 IP,这样 CDN 就起到了缓存加速的作用。

宝塔面板+Fikker+BBR算法+CloudXNS---搭建一个简易的全球CDN缓存节点给网站加速

宝塔面板+Fikker+BBR算法+CloudXNS---搭建一个简易的全球CDN缓存节点给网站加速

至此宝塔面板 + Fikker+BBR 算法 + CloudXNS--- 搭建一个简易的全球 CDN 缓存节点给网站加速这一套就彻底搭建完了。

最后去访问 www.007lhj.com,然后再来看 Fikker 后台,你会在右上角发现如下内容:
宝塔面板+Fikker+BBR算法+CloudXNS---搭建一个简易的全球CDN缓存节点给网站加速