1.squid簡介
Squid Cache(簡稱爲Squid)是一個流行的代理服務器和Web緩存服務器軟件。Squid有廣泛的用途,從作爲網頁服務器的前置緩存服務器緩存相關請求來提高Web服務器的速度,到爲一組人共享網絡資源而緩存萬維網、域名系統和其他網絡搜索,到通過過濾流量幫助網絡安全,到局域網通過代理上網。除了HTTP外,對於FTP與HTTPS的支持也相當好。
2.cdn簡介
CDN 是構建在數據網絡上的一種分佈式的內容分發網。 CDN 的作用是採用流媒體服務器集羣技術,克服單機系統輸出帶寬及併發能力不足的缺點,可極大提升系統支持的併發流數目,減少或避免單點失效帶來的不良影響。 CDN 利用全局負載均衡技術將用戶的訪問指向離用戶最近的工作正常的流媒體服務器上,由流媒體服務器直接響應用戶的請求。服務器中如果沒有用戶要訪問的內容,會根據配置自動從原服務器抓取相應的內容並提供給用戶。
1)cdn負載均衡
在CDN中,負載均衡又分爲服務器負載均衡和服務器整體負載均衡(也有的稱爲服務器全局負載均衡)。服務器負載均衡是指能夠在性能不同的服務器之間進行任務分配,既能保證性能差的服務器不成爲系統的瓶頸,又能保證性能高的服務器的資源得到充分利用。而服務器整體負載均衡允許Web網絡託管商、門戶站點和企業根據地理位置分配內容和服務。通過使用多站點內容和服務來提高容錯性和可用性,防止因本地網或區域網絡中斷、斷電或自然災害而導致的故障。在CDN的方案中服務器整體負載均衡將發揮重要作用,其性能高低將直接影響整個CDN的性能。
2)cdn動態內容分發與複製
網站響應速度和訪問者與網站服務器之間的距離有密切的關係。如果訪問者和網站之間的距離過遠的話,它們之間的通信一樣需要經過重重的路由轉發和處理,網絡延誤不可避免。一個有效的方法就是利用內容分發與複製技術,將佔網站主體的大部分靜態網頁、圖像和流媒體數據分發複製到各地的加速節點上。所以動態內容分發與複製技術也是CDN所需的一個主要技術。
3)cdn緩存
Web緩存服務通過幾種方式來改善用戶的響應時間,如代理緩存服務、透明代理緩存服務、使用重定向服務的透明代理緩存服務等。通過Web緩存服務,用戶訪問網頁時可以將廣域網的流量降至最低。對於公司內聯網用戶來說,這意味着將內容在本地緩存,而無須通過專用的廣域網來檢索網頁。對於Internet用戶來說,這意味着將內容存儲在他們的ISP的緩存器中,而無須通過Internet來檢索網頁。這樣無疑會提高用戶的訪問速度。CDN的核心作用正是提高網絡的訪問速度,所以,緩存技術將是CDN所採用的又一個主要技術。
3.squid透明代理案例配置
所用拓撲圖
1)代理服務器的網卡配置
2)切換到光盤目錄安裝squid
[root@localhost ~]# cd /mnt/cdrom/Server
[root@localhost Server]# rpm -ivh squid-2.6.STABLE21-3.el5.i386.rpm
3)設置dns服務器爲222.88.88.88
[root@localhost Server]# vim /etc/resolv.conf
配置內容如下
nameserver 222.88.88.88
search localdomain
4)測試到internet的連通性
5)客戶機網卡配置
6)打開服務器數據包轉發功能
編輯配置文件
7)爲192.168.1.0網段的dns流量做nat轉換
[root@localhost ~]# iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -p udp --dport 53 -o eth0 -j MASQUERADE
在192.168.1.21測試nat結果如下
查看nat的匹配條目
8)對80端口的流量做端口重定向
[root@localhost ~]# iptables -t nat -A PREROUTING -p tcp --dport 80 -i eth1 -j REDIRECT --to-ports 3128
9)配置squid啓動透明代理
vim /etc/squid/squid.conf
允許192.168.1.0網段流量通過
10)在192.168.1.21測試連接internet網
4.使用squid做服務器發佈的案例配置
所用的拓撲圖
1)配置web服務器
安裝apache
[root@localhost Server]# rpm -ivh httpd-2.2.3-31.el5.i386.rpm
2)在web站點做一個簡單的網頁
切換到站點主目錄編輯網頁
3)代理服務器配置
在上一個案例中squid已經安裝過這裏就不在安裝了
編輯/etc/squid/squid.conf文件
文件的修改如下圖
4)重啓squid服務
5)在主機192.168.101.21測試的結果
利用squid做流量控制的案例配置
所用的拓撲圖
1)由於squid已經安裝過這裏就不在安裝了
編輯/etc/resolv.conf文件指定dns服務器
[root@localhost ~]# vim /etc/resolv.conf
修改的內容如下:
nameserver 222.88.88.88
nameserver 222.85.85.85
search localdomain
測試網絡連通性
[root@localhost ~]# ping www.baidu.com
PING www.a.shifen.com (119.75.217.56) 56(84) bytes of data.
64 bytes from 119.75.217.56: icmp_seq=1 ttl=56 time=745 ms
64 bytes from 119.75.217.56: icmp_seq=2 ttl=56 time=800 ms
64 bytes from 119.75.217.56: icmp_seq=3 ttl=56 time=715 ms
2)客戶機網絡配置
3)編輯/etc/squid/squid.conf
[root@localhost squid]# vim /etc/squid/squid.conf
http_port 192.168.1.10:3128
4)以上配置做完後在192.168.1.21測試結果
5)基於來源ip的控制
[root@localhost squid]# vim /etc/squid/squid.conf
控制語句
acl na src 192.168.1.21/32
http_access deny na
用192.168.1.21測試
把客戶機ip改爲192.168.1.22測試
如果希望某個網段不能訪問控制語句如下
acl na src 192.168.1.21-192.168.1.29/32
http_access deny na
6)基於目的域名的控制
控制語句如下:
[root@localhost squid]# vim /etc/squid/squid.conf
acl naweb dstdomain .baidu.com
http_access deny naweb
客戶機網卡配置
7)測試
8)基於時間的控制
[root@localhost squid]# vim /etc/squid/squid.conf
控制語句如下:
acl worktime time MTWHF 08:00-17:00
http_access deny worktime
測試
對多個時間段的控制語句如下
acl worktime time MTWHF 08:00-12:00
acl worktime time MTWHF 14:00-18:00
http_access deny worktime
9)基於內容的控制
[root@localhost squid]# vim /etc/squid/squid.conf
控制語句如下:
acl nacontent urlpath_regex -i \.jpg$ \.gif$
http_access deny nacontent
測試結果
在某一段時間內不能訪問的內容控制語句
acl worktime 08:00-12:00
acl worktime 14:00-18:00
acl nacontent urlpath_regex -i \.jpg$ \.gif$
http_access deny worktime nacontent