squid集群,cdn

 cdn有两个重要的功能,一个icp将dns解析下放给cdn提供商,cdn通过dns将用户访问的地址解析出离用户最近的server的IP地址;第二个功能使利用squid做一个cache加速。

  
  
  
  
  1. cdn的dns:192.168.0.31 
  2. squid1:192.168.0.171 
  3. squid2:192.168.0.40 
  4. squid3:192.168.0.52 
  5. server1:192.168.0.31 
  6. server2:192.168.0.63 

配置cdn的dns

  
  
  
  
  1. yum install bind-utils bind -y 
  2. cd /etc/ 
  3. vim named.conf 
  4. 在option块中去掉listen-on port 53 { 127.0.0.1; };
  5. 加入一下内容:
  6. allow-query { localhost; localnets; };
  7. sortlist { 
  8.                 { localhost; 
  9.                         { 192.168.0.52; 
  10.                                 { 192.168.0.40; 192.168.0.171; }; 
  11.                         }; 
  12.                 };  #意为从localhost网段发来的请求,首先解析道德IP是192.168.0.52,如果192.168.0.52不能用则
  13. 发给下面两个IP
  14.  
  15.                 { 192.168.0.0/24; 
  16.                         { 192.68.0.40; 
  17.                                 { 192.168.0.171; 192.168.0.52; }; 
  18.                         }; 
  19.                 }; #意为从192.168.0.0/24网段发来的请求,首先解析道德IP是192.168.0.40,如果192.168.0.52不能用则 发给下面两个IP
  20.         };

 

  
  
  
  
  1. vim /etc/named.rfc1912.zones  
  2. zone "westos.org" IN { 
  3.         type master; 
  4.         file "westos.org.zone"; 
  5.         allow-update { none; }; 
  6. }; 
  7.  
  8. zone "cdn.com" IN { 
  9.         type master; 
  10.         file "cdn.com.zone"; 
  11.         allow-update { none; }; 
  12. }; 
  13. cd /var/named 
  14. cp -p named.localhost cdn.com.zone 
  15. cp -p named.localhost westos.org.zone #注意权限问题
  16. vim cdn.com.zone 
  17. $TTL 1D 
  18. @       IN SOA  @ root@localhost. ( 
  19.                                         0       ; serial 
  20.                                         1D      ; refresh 
  21.                                         1H      ; retry 
  22.                                         1W      ; expire 
  23.                                         3H )    ; minimum 
  24.         NS      @ 
  25.         A       127.0.0.1 
  26. cache   A       192.168.0.171 
  27. cache   A       192.168.0.40 
  28. cache   A       192.168.0.52 
  29. vim westos.org.zone 
  30. $TTL 1D 
  31. @       IN SOA  @ root@localhost. ( 
  32.                                         0       ; serial 
  33.                                         1D      ; refresh 
  34.                                         1H      ; retry 
  35.                                         1W      ; expire 
  36.                                         3H )    ; minimum 
  37.         NS      @ 
  38.         A       127.0.0.1 
  39. www     IN CNAME        cache.cdn.com. 
  40. /etc/init.d/named start
  41. vim /etc/resolv.conf
  42. nameserver 192.168.0.31

 配置squid1:

  
  
  
  
  1. vim /etc/squid/squid.conf 
  2. visible_hostname desktop171.example.com # 设定 squid 的主机名 
  3. http_port 80 accel vhost vport #配置 squid 为加速模式,vhost和vport分别指支持以域名的虚拟目录和以ip的虚拟目录 
  4. icp_port 3130 
  5.  
  6. # 配置 squid2和squid3 为其邻居,当 squid1 在其缓存中没有找到请求的资源时,通过 ICP 查询去其邻居中取得缓存 
  7. cache_peer 192.168.0.40 sibling 80 3130 
  8. cache_peer 192.168.0.52 sibling 80 3130 
  9.  
  10. #squid1 的两个父节点,originserver 参数指明是源服务器,round-robin 参数指明 squid 通过轮询方式将请求分发到其中一台父节;squid 同时会对这些父节点的健康状态进行检查,如果父节点down 了,那么 squid 会从剩余的 origin 服务器中抓取数据 
  11. cache_peer 192.168.0.63 parent 80 0 no-query originserver round-robin name=web1 
  12. cache_peer 192.168.0.31 parent 80 0 no-query originserver round-robin name=web2 
  13. cache_peer_domain web1 web2 www.westos.org #将www.westos.org 域的请求通过 RR 轮询方式转发到两个父节点中的一个 
  14.  
  15. cache_mem 64 MB #squid 用于缓存的内存量 

 #对 squid 的一些优化 根据系统实际情况而定,默认都有设置

  
  
  
  
  1. maximum_object_size 10240 KB ### 能缓存的最大对象为 10M 
  2. maximum_object_size_in_memory 512 KB ### 内存中缓存的最大对象 512K 
squid2 和 squid3 服务器的配置方法和配置参数和 squid1 一样,只有邻居那块的配置稍有不同,配置完成后,分别启动squid 服务。接下来查看日志文件观察状态
   
   
   
   
  1. [root@desktop31 squid]# tail -f /var/log/squid/cache.log  
  2. 2012/06/10 11:45:11| Accepting ICP messages at [::]:3130, FD 14. 
  3. 2012/06/10 11:45:11| HTCP Disabled. 
  4. 2012/06/10 11:45:11| Configuring Sibling 192.168.0.40/80/3130 
  5. 2012/06/10 11:45:11| Configuring Sibling 192.168.0.52/80/3130 
  6. 2012/06/10 11:45:11| Configuring Parent 192.168.0.63/80/0 
  7. 2012/06/10 11:45:11| Configuring Parent 192.168.0.31/80/0 
测试
在客户端输入http://www.westos.org,则正确的显示该网页。服务器端的响应对客户端是透明的,客户端不知道请求是由哪台 WEB 服务器处理的;而且其中某台 Squid 服务器或 WEB 服务器发生故障,也不影响服务的正常运行。
利用squid的反向代理技术可以提高网站系统的访问速度, squid 反向代理服务器加速了网站的性能,同时结合 DNS 轮询技术实现了网站的负载均衡。
 

 

 

 

 

 

 

 

 

你可能感兴趣的:(CDN,squid集群)