1、组件简介
1)宝塔面板php
宝塔面板是一款服务器管理软件,支持windows和linux系统,能够经过Web端轻松管理服务器,提高运维效率。例如:建立管理网站、FTP、数据库,拥有可视化文件管理器,可视化软件管理器,可视化CPU、内存、流量监控图表,计划任务等功能。咱们在这里只用到它的LNMP/LAMP一键安装功能。css
linux(centos)版:
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && bash install.shhtml
windows版:
http://download.bt.cn/win/panel/BtSoft.ziplinux
说明:本文使用的服务器系统是centos7.6,因此只演示linux(centos)版。其余版本详情请访问宝塔面板官方网站:
https://www.bt.cn/
卸载宝塔面板的命令:
wget http://download.bt.cn/install/bt-uninstall.sh && sh bt-uninstall.shweb
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算法!!!!windows
4)CloudXNScentos
这是博主大表哥建议的域名供应商,由于给域名添加解析的时候有选择线路类型的功能,好比移动线路、联通线路、电信线路、铁通线路、海外线路等等,你能够指定你的域名解析的时候走什么线路,大大能够缩短玩家的请求和响应时间,也能够起到加速的做用,同一个IP记录值能够选择好几种线路类型。
CloudXNS官方网站:
https://www.cloudxns.net/
除此以外,大表哥还推荐腾讯的DNSPOD,效果一样不错,DNSPOD的官网:
https://www.dnspod.cn/
2、搭建过程
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、44三、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,缓存服务器也安装宝塔面板来完成,具体的操做请借鉴以下网址:
https://www.openos.org/post/107/
4)智能DNS解析
配置好了源站和Fikker(CDN),最后就能够去CloudXNS里面,把域名的解析地址改为CDN服务器的IP,前面作BBR的实验的时候解析改的是源站的IP,如今CDN已经搭建好了,就把解析改为CDN的IP,这样CDN就起到了缓存加速的做用。
至此宝塔面板+Fikker+BBR算法+CloudXNS---搭建一个简易的全球CDN缓存节点给网站加速这一套就完全搭建完了。
最后去访问www.007lhj.com,而后再来看Fikker后台,你会在右上角发现以下内容: