一.CDN簡介
CDN(Content Delivery Network)是構建在網絡之上的內容分發網絡,依靠部署在各地的邊緣服務器,通過中心平臺的負載均衡、內容分發、調度等功能模塊,使用戶就近獲取所需內容,降低網絡擁塞,提高用戶訪問響應速度和命中率。CDN的關鍵技術主要有內容存儲和分發技術。
CDN的基本原理是廣泛採用各種緩存服務器,將這些緩存服務器分佈到用戶訪問相對集中的地區或網絡中,在用戶訪問網站時,利用全局負載技術將用戶的訪問指向距離最近的工作正常的緩存服務器上,由緩存服務器直接響應用戶請求。
搭建CDN系統可以選擇3種主流方案:
(1)squid
(2)varnish
(3)Nginx+memcache
本文選用varnish搭建CND節點集羣。
二.Varnish實現反向代理
搭建環境:
三臺redhat6.5版本虛擬機+一臺物理機;
server1:172.25.33.1 Varnish代理服務器
server2:172.25.33.2 web服務器1
server3:172.25.33.3 web服務器2
Client:172.25.33.250 測試機
搭搭建網絡yum源,三臺虛擬機都需要配置好yum源
下載安裝Varnish軟件包
查看varnish配置文件
[root@server1 ~]# rpm -qc varnish
修改配置文件
vim /etc/sysconfig/varnish
##varish的配置文件 ###這個配置文件裏面有下面兩個地方需要注意:
一、
上面圖的三處分別記錄着,varnish軟件所能支持的最大的文件的數
第二個是最大的內存支持:82M
第三個是支持的進程數:unlimited不限制
二、
上面的這一部分是讓varnish來監聽80端口。
爲了讓varnish達到更好的運行,必須要更改系統的限制文件(目的就是滿足varnish的要求),實際上是滿足不了的
由上面的截圖可以知道,軟件所能提供的最大文件數,最大內存和最大的進程數和系統哦所能提供的數字是不一樣的,這就導致在啓動varnish的時候會有報錯。(系統所能提供的是根據設備的硬件配置決定的)
所以就需要修改系統的限制,配置方法:
vim /etc/security/limits.conf
在文件的最後面加上系統給varnish的限制:
修改varnish運行的配置文件:
vim /etc/varnish/default.vcl
backend就是varnish代理的後端機器的ip地址
設置好之後重啓varnish服務
/etc/init.d/varnish restart ###後面重啓varnish服務多用reload
測試:在172.25.33.2開啓一個httpd的服務:
在真機上curl 172.25.33.2,得到如下結果