一、组件简介 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,缓存服务器也安装宝塔面板来完成,具体的操作请借鉴如下网址: 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后台,你会在右上角发现如下内容:
原文链接:https://blog.51cto.com/zpf666/2395252