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透明代理案例配置

所用拓扑图

p_w_picpath

1)代理服务器的网卡配置

1

2

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的连通性

1

5)客户机网卡配置

1

6)打开服务器数据包转发功能

编辑配置文件

 12

2

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结果如下

1

查看nat的匹配条目

2 

8)对80端口的流量做端口重定向

[root@localhost ~]# iptables -t nat -A PREROUTING -p tcp --dport 80 -i eth1 -j REDIRECT --to-ports 3128

3

9)配置squid启动透明代理

vim /etc/squid/squid.conf

4

允许192.168.1.0网段流量通过

5

10)在192.168.1.21测试连接internet网

6

4.使用squid做服务器发布的案例配置

所用的拓扑图

13 

1)配置web服务器

安装apache

[root@localhost Server]# rpm -ivh httpd-2.2.3-31.el5.i386.rpm

8

2)在web站点做一个简单的网页

切换到站点主目录编辑网页

9

10

3)代理服务器配置

在上一个案例中squid已经安装过这里就不在安装了

编辑/etc/squid/squid.conf文件

6

文件的修改如下图

5

4

3

4)重启squid服务

7

5)在主机192.168.101.21测试的结果

2

利用squid做流量控制的案例配置

所用的拓扑图

8

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)客户机网络配置

1

2

3)编辑/etc/squid/squid.conf

[root@localhost squid]# vim /etc/squid/squid.conf

1

http_port 192.168.1.10:3128

3

4)以上配置做完后在192.168.1.21测试结果

2

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测试

1

把客户机ip改为192.168.1.22测试

2

3

如果希望某个网段不能访问控制语句如下

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

客户机网卡配置

4

7)测试

5

6

8)基于时间的控制

[root@localhost squid]# vim /etc/squid/squid.conf

控制语句如下:

acl worktime time MTWHF 08:00-17:00
http_access deny worktime

测试

7

对多个时间段的控制语句如下

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

测试结果

8

在某一段时间内不能访问的内容控制语句

acl worktime 08:00-12:00

acl worktime  14:00-18:00

acl nacontent urlpath_regex -i \.jpg$ \.gif$
http_access deny   worktime nacontent