寶塔面板+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的文件測試下載速度,具體操作如下:
[[email protected] ~]# cd /www/wwwroot/www.007lhj.com
[[email protected] www.007lhj.com]# ls
404.html index.html
[[email protected] www.007lhj.com]# rm -rf 404.html index.html
[[email protected] 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
[[email protected] www.007lhj.com]# du -sh 1G.zip
1.0G 1G.zip
去瀏覽器下載1G.zip這個文件,我們看一下下載的速度:下面是博主隨便截取的一張速度圖:
2)安裝BBR算法
①在升級之前,您可以查看當前內核
[[email protected] ~]# uname -r
3.10.0-957.10.1.el7.x86_64
如您所見,當前內核為3.10.0,因此我們需要更新內核
②更新內核之前,先安裝 ELRepo 倉庫
導入公鑰:
[[email protected] ~]# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
安裝 ELRepo 倉庫:
[[email protected] ~]# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
③使用ELRepo repo安裝最新的內核(新內核必須在4.9.0以上)
[[email protected] ~]# yum --enablerepo=elrepo-kernel install kernel-ml -y
④確認結果
[[email protected] ~]# 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 菜單中的所有條目:
[[email protected] ~]# 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
[[email protected] ~]# grub2-set-default 0
⑥重啟服務器,使新內核生效
[[email protected] ~]# reboot
⑦重新運行uname -r命令以確認您使用的是正確的內核
[[email protected] ~]# uname -r
5.1.2-1.el7.elrepo.x86_64
以上結果顯示使用的是最新版的5.1.2內核
⑧啟用 BBR 算法前,還需要修改 sysctl 配置
[[email protected] ~]# echo ‘net.core.default_qdisc=fq‘ | sudo tee -a /etc/sysctl.conf
[[email protected] ~]# echo ‘net.ipv4.tcp_congestion_control=bbr‘ | sudo tee -a /etc/sysctl.conf
[[email protected] ~]# sysctl -p
⑨確認是否已經啟用了BBR
[[email protected] ~]# sysctl net.ipv4.tcp_available_congestion_control
看到類似如下結果說明啟用了BRR:
net.ipv4.tcp_available_congestion_control = reno cubic bbr
⑩繼續驗證
[[email protected] ~]# sysctl -n net.ipv4.tcp_congestion_control
看到類似如下結果說明啟用了BRR:
bbr
?檢查內核模塊是否已加載
[[email protected] ~]# lsmod | grep bbr
看到類似如下結果說明啟用了BRR:
tcp_bbr 20480 5
至此BBR已經啟用成功,我們再次去驗證一下,網速是否增強。由前後兩張下載速度的截圖,我們可以看出;
啟用BBR算法前的下載速度是:
35KB/s
啟用BBR算法後的下載速度是:
10.6MB/s
後者是前者的310倍,就問你吊不吊。
?刪除無用的舊內核
升級內核之後,往往老舊的內核也保留下來了,執行以下命令,將自動篩選並刪除當前無用的系統內核版本。
[[email protected] ~]# yum remove $(rpm -qa | grep kernel | grep -v $(uname -r))
3)安裝fikker,並做相關緩存配置
①安裝fikker
[[email protected] ~]# ls
fikkerd-3.7.6-linux-x86-64-crack.tar.gz
[[email protected] ~]# tar zxf fikkerd-3.7.6-linux-x86-64-crack.tar.gz
[[email protected] ~]# mv fikkerd-3.7.6-linux-x86-64 /usr/local/fikker
[[email protected] ~]# cd /usr/local/
[[email protected] local]# chmod 777 -R fikker/
[[email protected] local]# cd fikker/
[[email protected] 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端口例外
[[email protected] fikker]# firewall-cmd --permanent --add-port=80/tcp
success
[[email protected] fikker]# firewall-cmd --permanent --add-port=443/tcp
success
[[email protected] fikker]# firewall-cmd --permanent --add-port=6780/tcp
success
[[email protected] 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還有很多功能, 比如頁面緩存、實時監控、流量統計、轉向管理、防CC***等等,但是免費版本不包括頁面緩存, 如果您需要緩存這個功能, 那麽建議購買他們的全功能商業版本, 價格是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後臺,你會在右上角發現如下內容:
寶塔面板+Fikker+BBR算法+CloudXNS---搭建一個簡易的全球CDN緩存節點給網站加速