一、组件简介
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缓存节点给网站加速