Squid简介:
Squid是一种在Linux系统下使用的优秀的代理服务器软件。
squid不仅可用在Linux系统上,还可以用在AIX、Digital Unix、FreeBSD、HP-UX、Irix、NetBSD、Nextstep、SCO和Solaris等系统上。
Squid与Linux下其它的代理软件如Apache、Socks、TIS FWTK和delegate相比,下载安装简单,配置简单灵活,支持缓存和多种协议。用ipchains+Squid的解决方案,就可以获得通过缓存高性能的同时能够无缝的访问Internet。
Squid是一个缓存internet数据的一个软件,它接收用户的下载申请,并自动处理所下载的数据。也就是说,当一个用户想要下载一个主页时,它向Squid发出一个申请,要Squid替它下载,然后Squid 连接所申请网站并请求该主页,接着把该主页传给用户同时保留一个备份,当别的用户申请同样的页面时,Squid把保存的备份立即传给用户,使用户觉得速度相当快。
对于
Web用户来说,Squid是一个高性能的代理缓存服务器,可以加快内部网浏览Internet的速度,提高客户机的访问命中率。Squid不仅支持HTTP协议,还支持FTP、gopher、SSL和WAIS等协议。和一般的代理缓存软件不同,Squid用一个单独的、非模块化的、I/O驱动的进程来处理所有的客户端请求。
Squid将数据元缓存在内存中,同时也缓存DNS查寻的结果,除此之外,它还支持非模块化的DNS查询,对失败的请求进行消极缓存。Squid支持SSL,支持访问控制。由于使用了ICP,Squid能够实现重叠的代理阵列,从而最大限度的节约带宽。
Squid由一个主要的服务程序Squid,一个DNS查询程序dnsserver,几个重写请求和执行认证的程序,以及几个管理工具组成。当Squid启动以后,它可以派生出指定数目的dnsserver进程,而每一个dnsserver进程都可以执行单独的DNS查询,这样一来就大大减少了服务器等待DNS查询的时间。
Squid的另一个优越性在于它使用访问控制清单(ACL)和访问权限清单(ARL)。访问控制清单和访问权限清单通过阻止特定的网络连接来减少潜在的Internet非法连接,可以使用这些清单来确保内部网的主机无法访问有威胁的或不适宜的站点。
Squid对硬件的要求是内存一定要大,不应小于
128M,硬盘转速越快越好,最好使用服务器专用SCSI硬盘,处理器要求不高,400MH以上既可。
CDN简介:
CDN的全称是Content Delivery Network,即内容分发网络。其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。其目的是使用户可就近取得所需内容,解决 Internet
网络拥挤的状况,提高用户访问网站的响应速度。
实验案例一拓扑图:
在Squid代理服务器中配置vim /etc/resolv.conf使代理服务器连接到网络
配置后保证代理可以连接网络
挂载光盘,并安装squid软件包rpm -ivh squid-2.6.STABLE21-3.el5.i386.rpmvim /etc/squid/squid.conf 编辑squid的配置文档因为此文档过大,且大部分为注释,所以可以只看配置行过滤注释行并把过滤后生成的空白行业过滤掉grep -v "^#" /etc/squid/squid.conf |grep -v "^$"了解squid的相关配置。cd /var/spool/squid/切换到目录vim /etc/squid/squid.conf编辑squid
service squid start 启动squid
启动成功后查看/var/spool/squid ,新生成16个文件目录,每个目录中有256个缓存目录
简单测试编辑vim /etc/squid/squid.conf
允许所有访问
service squid restart重启squid,用客户机进行测试,在客户机中需要进行代理设置
在Internet属性选项中,连接框选中局域网设置,代理服务器选项,填写squid地址,端口
可以在suqid中查看代理信息tail -f /var/log/squid/access.log
在vim /etc/squid/squid.conf文件中编辑,可以固定代理地址
在vim /etc/squid/squid.conf文件中基于acl的控制可以根据要求来控制访问信息
拒绝badip中的ip地址访问
禁止一个范围内的ip访问
Acl可以基于域名,ip地址,Mac地址,时间等来进行控制,相关参数网络上很多,大家可以上网查找,就不一一列举了。注意:每次配置后都需重启squid。
ACL,Access Control List,访问控制列表.它的语法是: (在/usr/local/squid/etc/squid.conf里添加)
acl 表名 表类型 [-i] 表的值
http_access [allow/deny] 表名下面分条解释:
表名:可以自定义
表类型:表类型有
src 源地址:客户机的IP地址
dst 目的地址:服务器的IP地址
srcdomain 源域:客户机所属的域
dstdomain 目的域:服务器所属的域
url_regex URL正则表达式(字符串部分)
urlpath_regex URL正则表达式中的路径
time [星期] [时间段]
maxconn 客户端的最大连接数
-i 这个参数使Squid不区分大小写
表的值:随表的类型不同而不同
注意:time中的星期要用如下字符:
S (Sunday,星期日) M(Monday,星期一) T(Tuesday,星期二) W(Wednesday,星期三)
H(Thursday,星期四) F(Friday,星期五) A(Saturday,星期六)
时间段的表示方式是: XX:00-YY:00 如: 20:00-22:00
http_access 选项允许你设置一个表是允许(allow)还是拒绝(deny)
案例二拓扑图(透明代理):(与案例一拓扑图相同)
在用户不知道代理服务器地址,端口的情况下,服务器设置为transparence(透明)使客户端可以连接到互联网
在客户端不需要设置代理地址和端口,但需要配置网关参数和dns地址
实现nat转换vim /etc/sysctl.conf
通过iptable实现nat
iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -p udp --dport 53 -o eth1 -j MASQUERAED
设置端口重定向iptables –t nat –A POSTROUTING –p tcp –dport 80 –I eth0 –j REDIRECT –to-ports 3128
在vim /etc/squid/squid.conf在端口列加入transparent
反向代理案例:
反向代理也就是通常所说的WEB服务器加速,它是一种通过在繁忙的WEB服务器和Internet之间增加一个高速的WEB缓冲服务器(即:WEB反向代理服务器)来降低实际的WEB服务器的负载。
在squid服务器中vim /etc/squid/squid.conf
重启squid