CDN加速的實現 varnish

2021-08-21 20:22:06 字數 4215 閱讀 5519

cdn的全稱——content delivery network,即內容分發網路。

其基本思路是盡可能避開網際網路上有可能影響資料傳輸速度和穩定性的瓶頸和環節,使內容傳輸的更快、更穩定。通過在網路各處放置節點伺服器所構成的在現有的網際網路基礎之上的一層智慧型虛擬網路,cdn系統能夠實時地根據網路流量和各節點的連線、負載狀況以及到使用者的距離和響應時間等綜合資訊將使用者的請求重新導向離使用者最近的服務節點上。其目的是使使用者可就近取得所需內容,解決 internet網路擁擠的狀況,提高使用者訪問**的響應速度。

varnish是一款高效能的開源http加速器,具有反向**,快取的功能。

yum install varnish-3.0

.5-1.el6.x86_64.rpm

yum install varnish-libs-3.0

.5-1.el6.x86_64.rpm

安裝完成後,在系統的/etc/passwd中生成varnish使用者,對varnish的訪問控制實質上是對varnish使用者的控制實現的。

2.編輯varnish檔案

vim /etc/sysconfig/varnish

將66行改為:varnish_listen_port=80

# 以下不用修改,只是檢視

第8行 nfiles=131072

# 最多能開啟的檔案數,varnish會自動調整該值

第12行 memlock=82000

# 最多能使用的記憶體空間,varnish會自動調整該值

第15行 nprocs="unlimited"

# 單個使用者所能執行的最大執行緒數

3.修改varnish使用者的限制檔案

因為varnish這個程式執行在varnish這個使用者的私有空間內,核心對普通使用者限制的最大檔案數為1024.對varnish使用者限制的最大檔案數為131072,我們需要滿足131072這個最大值。

vim /etc/security/limits.conf

varnish - nofile 131073

# 滿足最多能開啟的檔案數

varnish - memlock 82000

varnish - nproc unlimited

# 將後邊的數字和上邊檔案中對應項改為相等

4.開啟varnish服務

/etc/init.d/varnish start

5.在varnish預設檔案中寫上後端伺服器的ip及埠

vim /etc/varnish/default.vcl

backend default

sub vcl_deliver

else

return (deliver);

}

/etc/init.d/varnish reload   # 這是必須的
6.在物理機中的/etc/hosts中寫www.westos.org的解析—>172.25.1.1(varnish主機)

www.westos.org 172.25.1.1

在server2(後端伺服器)中安裝httpd服務並在apach預設發布目錄中寫預設發布檔案

7.在物理機中測試:curl -i www.westos.org

1.開啟test3虛擬機器,配置test3的ip和主機名為172.25.1.3->server3

hostname server3

vim /etc/sysconfig/network

hostnmae= server3

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

ip=172.25.1.3

2.安裝httpd服務,在httpd的預設發布目錄下編輯預設發布檔案index.html bbs.westos.com

3.將bbs解析到物理主機 bbs.westos.org 172.25.77.1

4.配置varnish的server1default檔案

}default檔案每次編寫完後都要reload varnish

5.物理機中的訪問測試:

1.什麼是負載均衡

負載均衡(load balance,簡稱lb)是一種伺服器或網路裝置的集群技術。負載均衡將特定的業務(網路服務、網路流量等)分擔給多個伺服器或網路裝置,從而提高了業務處理能力,保證了業務的高可用性。

負載均衡演算法的種類有很多種,常見的負載均衡演算法包括輪詢法、隨機法、源位址雜湊法、加權輪詢法、加權隨機法、最小連線法等,應根據具體的使用場景選取對應的演算法。在varnish中我們採用的是輪詢法,平衡對待麼乙個後端伺服器。

2.在server3的httpd的預設發布目錄中建立兩個虛擬主機

documentroot /var/www/html

servername bbs.westos.org

virtualhost>

documentroot /www1

servername www.westos.org

virtualhost>

將990行注釋開啟

3.在server3預設發布目錄中書寫www.westos.org - server3

在server2預設發布目錄中書寫www.westos.org - server2

4.在varnish主機server1中的defaults檔案中寫入負載均衡函式:

director westos round-robin 

}round robin(中文翻譯為輪詢排程)是一種以輪詢的方式依次將乙個網域名稱解析到多個ip位址的排程不同伺服器的計算方法。

}

5.在物理主機中的測試

curl www.westos

.org

如果第一次出現server2(server3),那麼120秒內都是server2(薩爾ver),因為server2(server3)將資料進行了快取;

如果訪問時間大於120s,它會出現server3(server2)(因為負載均衡採用的演算法是平衡輪叫,server2和server3是公平地被訪問的)

如果在預設函式中寫上pass,那麼它每次都直接從後端伺服器中直接取,一次server2一次server3

如果server2或者server3其中乙個損壞(關閉htpd服務),那麼客戶端只會訪問健康的那乙個,不會訪問壞的哪乙個,即負載均衡的健康檢查。

server2和server3中間間隔超過120秒

健康檢查:

通過健康檢查來確定伺服器和應用的健康狀況是負載均衡器器乙個非常重要的功能。沒有負載均衡器,客戶端可能會將請求傳送到已經停機的伺服器上。網路管理員必須手動干預替換這台伺服器,或者排除伺服器的故障。有時伺服器可能沒有停機,但是因為某種原因,比如軟體的漏洞,伺服器上面執行的應用系統已經不能正常工作。比如web應用可能正常執行,但它返回的頁面卻是錯誤的內容。負載均衡器能夠檢測這些情況並立即將客戶請求導向到正常的伺服器而不需要管理員的干預。

varnish的CDN加速功能實現

varnish的加速 清除varnish快取 配置default.vcl加速配置 給真機做解析 測試manger主 管理mangement 程序 fork乙個work子程序 讀入 更新配置 vcl檔案編譯 varnish監控,初始化varnish及提供varnish管理介面 management程序...

Varnish搭建cdn快取

cdn的全稱是content delivery network,即內容奮發網路。其基本思路是盡可能避開網際網路上有可能影響資料傳輸速度和穩定性的瓶頸和環節,使內容傳輸的更快 更穩定。通過在網路各處放置節點伺服器所構成的在現有的網際網路基礎之上的一層智慧型虛擬網路,cdn系統能夠實時地根據網路流量和各...

使用Varnish加速Web

4.使用varnish加速web 問題通過配置varnish快取伺服器,實現如下目標 使用varnish加速後端apache web服務 使用varnishadm管理快取頁面 使用varnishstat檢視varnish狀態 方案通過原始碼編譯安裝varnish快取伺服器 編譯安裝varnish軟體...