卓越飞翔博客卓越飞翔博客

卓越飞翔 - 您值得收藏的技术分享站
技术文章11201本站已运行3223

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

一、组件简介
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
看到如下页面,说明你的站点创建成功:


我们在站点根目录下创建一个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这个文件,我们看一下下载的速度:下面是博主随便截取的一张速度图:

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已经启用成功,我们再次去验证一下,网速是否增强。


由前后两张下载速度的截图,我们可以看出;
启用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后台,你可以看到大表哥破解版的授权结束日期:9999-12-31 12:20:21,如果是正式版,而是7天免费时间。


④配置fikker后台
⑴主机管理里面添加您的网站域名和源站IP



⑵页面缓存配置
Ⅰ、设置带有图片的静态页面的缓存规则
^.+.(jpg|jpeg|gif|bmp|png|ico|swf|css|js|txt|xls|cur)$


Ⅱ、设置缓存首页的匹配规则


Ⅲ、设置缓存视频的匹配规则
^.+.(m3u8|ts)$


Ⅳ、设置新闻页面的缓存匹配规则


⑶拒绝缓存配置
Ⅰ、动态页面不缓存
^.+.(php|aspx|asp|jsp|do|cgi|xhtml|shtml|htm|html|xml)(??|?.+)$


Ⅱ、主页和目录页不缓存
^.+/(??|?.+)$


Ⅲ、管理后台页面不缓存

⑷硬盘缓存设置


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

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


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

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


⑹分量统计设置
Ⅰ、只统计首页流量

Ⅱ、 统计站点 php 页面流量(两种方法)
第一种:采用通配符匹配规则实现

第二种:
^www\.007lhj\.com/.+\.php(.*)$
采用正则表达式匹配规则实现

⑺防盗链管理
^www.007lhj.com/.+.(jpg|gif|png|ts|m3u8)$

⑻黑名单设置
Ⅰ、屏蔽单个IP地址

Ⅱ、屏蔽IP地址段

⑼系统配置

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

通过上面的方法, 您可以在全球架设多个节点, 如果您的节点比较多, 那么还可以通过他们的主控系统来集中化管理。

Fikker主控端下载地址:
 https://www.fikker.com/dl/FikkerCDN.zip

Fikker其它常用一键脚本 - 暂时用不到 - 可留作以后备查          

a、停止 Fikker 程序的一键脚本:
service fikkerd stop ; sleep 5 ; echo 'finished!'

b、启动 Fikker 程序的一键脚本:
service fikkerd start ; sleep 5 ; echo 'finished!'

c、重启 Fikker 程序的一键脚本:
service fikkerd restart ; sleep 5 ; echo 'finished!'

d、完全卸载/完全删除 Fikker 程序的一键脚本(默认安装在 /root 目录下面):
cd /root  && cd /usr/local/fikker && ./fikkerd.sh stop 2> /dev/null ; sleep 2 ; ./fikkerd.sh uninstall ; cd /root && rm -rf /usr/local/fikker && echo 'finished!'

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


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

最后去访问,然后再来看Fikker后台,你会在右上角发现如下内容:
卓越飞翔博客
上一篇: 阿里云OSS图床搭建
下一篇: yum60秒内安装mysql的方法
留言与评论(共有 0 条评论)
   
验证码:
隐藏边栏