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後臺,你會在右上角發現以下內容: