cdn

一.封裝一個6.5版本的redhat linux安裝過程和7以上的版本有所不同,

這裏寫圖片描述
這裏寫圖片描述
這裏寫圖片描述
這裏寫圖片描述
這裏寫圖片描述
這裏寫圖片描述
這裏寫圖片描述
因爲選擇的是網絡安裝,因爲eth0問題導致無法安裝,原因的沒dhcp源,所以本地安裝
安裝號之後配置yum源
這裏寫圖片描述
網絡配置:

vi /etc/sysconfig/network-scripts/ifcg-eth0

添加本地解析,後邊以此爲母盤新建虛擬機使用

vi /etc/hosts

這裏寫圖片描述
關閉防火牆
網絡通了以後安裝vim工具

chkconfig iptables off

關閉selinx

vim /etc/sysconfig/selinux

這裏寫圖片描述
添加sdn解析

vim /etc/sysconfig/network

這裏寫圖片描述

刪除這些文件

rm -fr /etc/ssh/ssh_host_*

最後poweroff關機不是reboot,reboot設置會恢復,刪除該虛擬機,但不刪除鏡像文件,
真機執行命令,清除虛擬機換存

[root@foundation51 Desktop]# cd /var/lib/libvirt/images/
[root@foundation51 images]# virt-sysprep -d rhel6.5

這裏寫圖片描述
至此虛擬機封裝完成,刪除虛擬機,保留鏡像

這裏寫圖片描述

這裏寫圖片描述

二.利用母盤新建虛擬機鏡像server-ip12 ,13,14

這裏寫圖片描述

安裝

這裏寫圖片描述
這裏寫圖片描述
這裏寫圖片描述
這裏寫圖片描述
其他同此步驟
這裏寫圖片描述

配置網絡

每臺虛擬機操作一樣,這裏以server-ip14爲例
添加dns
這裏寫圖片描述

vim /etc/sysconfig/network-scripts/ifcfg-eth0

這裏寫圖片描述
最後重啓網絡

/etc/init.d/network restart

這裏寫圖片描述
完成後ssh連接,開始下一步實驗
這裏寫圖片描述

cdn

varnish-3.0.5-1.el6.x86_64.rpm
varnish-libs-3.0.5-1.el6.x86_64.rpm
把準備好的安裝包考到server-ip12的/opt下,yum intsall varnish-*安裝

這裏寫圖片描述

cat /etc/sysconfig/varnish
如圖,第八行顯示的是cdn換存最大文件數13107

這裏寫圖片描述

sysctl -a | grep file-max ##顯示內核最大支持的換存文件數371487
/etc/pam.d/ 這裏邊放的是認證文件

這裏寫圖片描述

/lib64/security/  ##這裏邊是一些認證模塊

這裏寫圖片描述

/etc/security/  ##這裏邊是一些認證配置文件

這裏寫圖片描述

vim /etc/security/limits.conf
--->>最後一行
varnish     -   nofile    65535    ##使用者varnish(/etc/passwd有個非交互式用戶varnish   - 軟上限和硬上限兩種類型   最大文件數 )

ulimit這個命令可以查看

vim /etc/sysconfig/varnish  ##因爲測試http服務所以設置80端口

這裏寫圖片描述

 [root@server-ip12 varnish]# vim /etc/varnish/default.vcl   ##設置端口號80和後端服務器的ip

這裏寫圖片描述

/etc/init.d/varnish start ##開啓varnish服務

在server-ip12和server-ip13上裝http服務並開啓
在server-ip13上寫測試頁

這裏寫圖片描述

在訪問server-ip12的時候會顯示server-13的內容
這裏寫圖片描述
這裏寫圖片描述

三:查看換緩存命中情況

真機瀏覽器所在的主機/etc/hosts添加本地解析

172.25.254.12 www.westos.org bbs.westos.org
vim /etc/varnish/default.vcl 

這裏寫圖片描述
真機測試,第一次換存沒找到於是經varnish去13服務器尋找,找到後換存起來,再次訪問www.westos.org直接返回客戶端
這裏寫圖片描述

四:負載均衡:定義多個不同域名站點的後端服務器

定義多個不同域名站點的後端服務器
backend web1 {
.host = “172.25.254.13”;
.port = “80”;
}
backend web2 {
.host = “172.25.254.14”;
.port = “80”;
}
當訪問 www.westos.org 域名時從 web1 上取數據,訪問 bbs.westos.org 域名時到 web2 取數據,
訪問其他頁面報錯。
sub vcl_recv {
if (req.http.host ~ “^(www.)?westos.org”) {
set req.http.host = “www.westos.org”;
set req.backend = web1;
} elsif (req.http.host ~ “^bbs.westos.org”) {
set req.backend = web2;
} else {error 404 “westos cache”;
}
}

這裏寫圖片描述
實驗效果:
這裏寫圖片描述
這裏寫圖片描述

五:輪詢

backend web1 {
.host = “172.25.254.13”;
.port = “80”;
}
backend web2 {
.host = “172.25.254.14”;
.port = “80”;
}
director lb round-robin{
{ .backend = web1; }
{ .backend = web2; }
}
sub vcl_recv {
if (req.http.host ~ “^(www.)?westos.org”)
{
set req.http.host = “www.westos.org”;
set req.backend = lb;
return (pass); #爲了測試方便,不進行緩存
}
elsif (req.http.host ~ “^bbs.westos.org”)
{
set req.backend = web2;}
else
{error 404 “westos cache”;}
}

這裏寫圖片描述
實驗效果
這裏寫圖片描述

六:通過 varnishadm 手動清除緩存

varnishadm ban.url .*$
   #清除所有
varnishadm ban.url /index.html
   #清除 index.html 頁面緩存
varnishadm ban.url /admin/$
   #清除 admin 目錄緩存

七:varnish cdn 推送平臺

安裝php插件
將/opt/varnish/下的 bansys.zip解壓到apache默認發佈目錄中unzip bansys.zip -d /var/www/html/ 把解壓後目錄中的所有文件移動到html下
這裏寫圖片描述

bansys 有兩種工作模式,分別是:telnet 和 http 模式。
telnet 模式需要關閉 varnish 服務管理端口的驗證,註釋掉/etc/sysconfig/varnish 文件中的 “ -S $
{VARNISH_SECRET_FILE}”這行,重啓 varnish 服務即可。
如果是 http 模式需要對 varnish 做以下設置:
這裏寫圖片描述
修改剛纔解壓的文件
這裏寫圖片描述
修改server-ip12的http端口爲8080重啓後測試
這裏寫圖片描述

八虛擬主機:改回上一個實驗的8080端口爲80

這裏寫圖片描述
這裏寫圖片描述
瀏覽器主機已經解析了www.westos.org和bbs.westos.org

vim /etc/varnish/default.vcl 

這裏寫圖片描述
這裏寫圖片描述
實驗測試當訪問(www).westos.org的時候,回去訪問web1也就是172.25.254.13
這裏寫圖片描述
處理過程大致分爲如下幾個步驟:
(1)Receive 狀態,也就是請求處理的入口狀態,根據 VCL 規則判斷該請求應該是 Pass 或Pipe,或者進入 Lookup(本地查詢)。
(2)Lookup 狀態,進入此狀態後,會在 hash 表中查找數據,若找到,則進入 Hit 狀態,否則進入 miss 狀態。
(3)Pass 狀態,在此狀態下,會進入後端請求,即進入 fetch 狀態。
(4)Fetch 狀態,在 Fetch 狀態下,對請求進行後端的獲取,發送請求,獲得數據,並進行本地的存儲。
(5)Deliver 狀態, 將獲取到的數據發送給客戶端,然後完成本次請求。

cdn原理

基於上述實驗說明:12充當了cdn的作用,當客戶端51訪問172.25.254.12的時候,cdn12主機接收到請求,從cdn中varnish換存中查找,如果有直接返回給客戶端,12如果沒有cdn去從隔壁cdn1站點獲取,有返回客戶端,如果沒有直接去服務源站獲取,換存到cdn本地,在返回給客戶端:
這裏寫圖片描述

發佈了102 篇原創文章 · 獲贊 27 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章