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