自架设CDN服务器——智能DNS解析及Squid集群 大型网站加速解决方案
发布时间:2019-05-12

 国内很多大型网站使用的都是架设镜像服务器集群的方法在全国加速,这样做的好处不言而喻,不仅面向全国范围内多条线路全面提升网络访问速度,减少来自服务器的压力,而且可以抵御黑客攻击,因为黑客所看到的都是缓存镜像服务器。民间中小型网站大多使用的是各厂商提供的CDN加速服务,这些网站主要包括博客站,论坛等流量较小的网站,而类似视频图片网站等流量很大的网站,如采用厂商提供的CDN服务,需要付出相当昂贵的宽带费用。我们现在所要介绍的,就是利用Squid逆向集群模式架设类CDN的缓存镜像服务器。

 
网络环境
主服务器群:源Web服务器群 位于公网ip:220.XXX.XXX.XXX 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.showmeng.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.showmeng.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.showmeng.com
acl Safe_ports port 80
acl Safe_ports port 3130
通过以上步骤就配置好了Squid。
 
注:下面看看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:当你的父代理服务器要求用户认证时可以使用该选项来进行认证。
 
智能DNS解析
智能DNS解析需要用到软件“BIND”。BIND是现今互联网上最常使用的DNS服务器软件,使用BIND作为服务器软件的DNS服务器约占所有DNS服务器的九成。BIND软件可由http://www.isc.org/products/BIND/ 取得Bind的最新版本(source code)。
 
Unix 安装
将source code解压缩后并进入该目录底下
执行Bind的组态设定
编译相关Bind档案
将Bind安装置系统中
e.g.我们以安装至linux为例
 
[root@linux root]# tar –zxvf bind-9.2.1.tar.gz
[root@linux root]# cd bind-9.2.1
[root@linux root]# ./configure
………………
[root@linux root]# make
………………
[root@linux root]# make install
………………
 
Windows 安装
将压缩档解压缩后进入该目录底下
执行”BINDInstaller.exe”执行档,便可将Bind安装置系统中
 
公司名称:六安市金狮网络技术有限公司
公司地址:安徽省六安市金安区皖西大道红叶大厦802A
联系电话:0564-3214800 手机:13956148092 邮箱:120907442@qq.com QQ:120907442 / 1099497647
手机访问