344
中電雲集
Squid集群做CDN全網加速
更新日期:08年1月10日 環境:Centos5.1 squid2.6
主服務器群,然後在利用Squid逆向緩存web80端口來加速自己的網站.各大門戶網站象163,sina,chinaitlab之類基本都是使用的這種技術,好處是大大的有。比如加速了網絡和可以防黑客(因為他們見到的都是CDN的主機)
這是利用Squid逆向集群模式做的一種應用
網絡環境:
主服務器群:源Web服務器群 位於公網ip:220.XXX.XXX.X port:80(後台才是WEB的服務器)
注: 要保證TCP80,UDP3130在防火牆上是開的(供icp_port通訊使用,多台Squid集群才會用到)
全國各地分服務器:A服務器公網IP111.xxx.xxx.x
B服務器公網ip112.xxx.xxx.x
注: 要保證TCP80,UDP3130在防火牆上是開的(供icp_port通訊使用,多台Squid集群才會用到)
……………………
需要解決的問題:
全國的所有用戶,無論是電信,還是網通,都能速度很好的打開網站
實施
1、分別在主服務器群和全國各地分服務器的三台服務器安裝Squid,不會安裝的請直接關閉本網頁。
2、分別配置Squid,這裏隻重點敘述Squid集群配置要點。
主服務器群Squid的配置:
http_port 220.XXX.XXX.X:80 vhost vport #讓Squid監聽本機ip的80端口
icp_port 3130 #多台squid通信使用
cache_peer “內網web服務器的地址” parent 80 0 no-query originserver no-digest name=cache0 #設置源Web服務器群的ip和端口
cache_peer 220.XXX.XXX.X sibling 80 3130 name=cache1 #讓遠程的squid連接本地Squid工作在sibling模式並指定其端口
cache_peer 111.xxx.xxx.x sibling 80 3130 name=cache2 #A服務器
cache_peer 112.xxx.xxx.x sibling 80 3130 name=cache3 #B服務器
cache_peer_domain cache0 www.php-oa.com #配置本機squid允許接受訪問的域名
acl Safe_ports port 80
acl Safe_ports port 3130 #允許以上端口的代理
全國各地分服務器Squid的配置:
A服務器:
http_port 111.xxx.xxx.x:80 vhost vport
icp_port 3130
cache_peer 220.xxx.xxx.x parent 81 0 no-query originserver no-digest name=cache0 #設置主服務器群Web服務器為源服務器
cache_peer 111.xxx.xxx.x sibling 80 3130 name=cache1
cache_peer 220.xxx.xxx.x sibling 80 3130 name=cache2
cache_peer 112.xxx.xxx.x sibling 80 3130 name=cache3
cache_peer_domain cache0 www.php-oa.com
acl Safe_ports port 80
acl Safe_ports port 3130
B服務器:
http_port 112.xxx.xxx.x:80 vhost vport
icp_port 3130
cache_peer 220.xxx.xxx.x parent 80 0 no-query originserver no-digest name=cache0
cache_peer 112.xxx.xxx.x sibling 80 3130 name=cache1
cache_peer 220.xxx.xxx.x sibling 80 3130 name=cache2
cache_peer 111.xxx.xxx.x sibling 80 3130 name=cache3
cache_peer_domain cache0 www.php-oa.com
acl Safe_ports port 80
acl Safe_ports port 3130
雖然配置好了但是如何讓電信和網通的用戶能有選擇的訪問兩個不同鏡像呢?這個請各位自己查相關的資料,要不到https://www.dnspod.com申請雙線,電信網通的轉發服務
注:下麵看看cache_peer的參數
通過squid.conf配置文件中的cache_peer選項來配置代理服務器陣
列,通過其他的選項來控製選擇代理夥伴的方法。Cache_peer的使用格式如下:
cache_peer hostname type http_port icp_port
共有5個選項可以配置:
1. hostname:指被請求的同級子代理服務器或父代理服務器。可以用主機名或ip地址表示;
2. type:指明hostname的類型,是同級子代理服務器還是父代理服務器,也即parent(父) 還是 sibling(子);
3. http_port:hostname的監聽端口;
4. icp_port:hostname上的ICP監聽端口,對於不支持ICP協議的可指定7;
5. options:可以包含一個或多個關鍵字。
Options可能的關鍵字有:
1. proxy-only:指明從peer得到的數據在本地不進行緩存,缺省地,squid是要緩存這部分數據的;
2. weight=n:用於你有多個peer的情況,這時如果多於一個以上的peer擁有你請求的數據時,squid通過計算每個peer的ICP響應時間來 決定其weight的值,然後squid向其中擁有最大weight的peer發出ICP請求。也即weight值越大,其優先級越高。當然你也可以手工 指定其weight值;
3. no-query:不向該peer發送ICP請求。如果該peer不可用時,可以使用該選項;
4. Default:有點象路由表中的缺省路由,該peer將被用作最後的嚐試手段。當你隻有一個父代理服務器並且其不支持ICP協議時,可以使用default和
no-query選項讓所有請求都發送到該父代理服務器;
5.login=user:password:當你的父代理服務器要求用戶認證時可以使用該選項來進行認證。
最後更新:2017-01-04 22:34:34