VMWARE6.0+Centos5.3+Squid2.6构建反向代理环境

2009-10-23日重新更新(反向加速原理请参照另一篇squid2.6文章) 系统环境:XP_SP2+Centos5.3+Vmware6.0+Squid2.6.STABLE21-3.el5+X-manager3.0,为了方便我直接用yum安装squid2.6。 网络拓补为: Squid服务器:CentOS5.3,IP:192.168.1.103,主机名为squid2.test.com WebServer1:nginx作web服务器,IP:192.168.1.104,主机名为webserver1.test.com WebServer2:nginx作web服务器,IP:192.168.1.105,主机名为webserver2.test.com WebServer3:apache作web服务器 IP:192.168.1.101,主机名为webserver3.test.com XP作web客户机: IP为192.168.1.188 所有主机均通过路由器连接(即虚拟的Linux服务器采用bridged连接) 因为XP准备作客户机,在XP主机下编辑文件 edit c:\windows\system32\drivers\etc\hosts,省略掉DNS解析过程 192.168.1.103 webserver1.test.com 192.168.1.103 webserver2.test.com 192.168.1.103 werserver3.test.com Squid主要配置文件如下: #可视化主机名,必填 visible_hostname squid2.test.com #监听服务器的80端口,支持域名和IP的虚拟主机 http_port 192.168.1.103:80 vhost #重点,反向代理的配置,以下内容在原有squid内容文件上添加,其语法如下: 被代理的web的IP父子关系 端口 icp或HTCP端口(0代表禁止)自命名 cache_peer 192.168.1.104 parent 80 0 no-query originserver name=webserver1 cache_peer 192.168.1.105 parent 80 0 no-query originserver name=webserver2 cache_peer 192.168.1.101 parent 80 0 no-query originserver name=webserver3 #所代理的域名 cache_peer_domain webserver1 webserver1.test.com cache_peer_domain webserver2 webserver2.test.com cache_peer_domain webserver3 webserver3.test.com #访问权限的控制 acl all src 0.0.0.0/0.0.0.0 http_access allow all cache_peer_access webserver1 allow all cache_peer_access webserver2 allow all cache_peer_access webserver3 allow all 用xp验证实验结果是可直接在IE中输入http://webserver1.test.com等进行验证,为了方便大家实验,特地贴出我的squid.conf配置文件,省去了大家sed的麻烦,如下: visible_hostname squid2.test.com cache_peer 192.168.1.104 parent 80 0 no-query originserver name=webserver1 cache_peer 192.168.1.105 parent 80 0 no-query originserver name=webserver2 cache_peer 192.168.1.101 parent 80 0 no-query originserver name=webserver3 cache_peer_domain webserver1 webserver1.test.com cache_peer_domain webserver2 webserver2.test.com cache_peer_domain webserver3 webserver3.test.com acl all src 0.0.0.0/0.0.0.0 acl manager proto cache_object acl localhost src 127.0.0.1/255.255.255.255 acl to_localhost dst 127.0.0.0/8 acl SSL_ports port 443 acl Safe_ports port 80 # http acl Safe_ports port 21 # ftp acl Safe_ports port 443 # https acl Safe_ports port 70 # gopher acl Safe_ports port 210 # wais acl Safe_ports port 1025-65535 # unregistered ports acl Safe_ports port 280 # http-mgmt acl Safe_ports port 488 # gss-http acl Safe_ports port 591 # filemaker acl Safe_ports port 777 # multiling http acl CONNECT method CONNECT http_access allow manager localhost http_access deny manager http_access deny !Safe_ports http_access deny CONNECT !SSL_ports http_access allow localhost http_access allow all icp_access allow all cache_peer_access webserver1 allow all cache_peer_access webserver2 allow all cache_peer_access webserver3 allow all http_port 192.168.1.103:80 vhost hierarchy_stoplist cgi-bin ? access_log /var/log/squid/access.log squid acl QUERY urlpath_regex cgi-bin \? cache deny QUERY refresh_pattern ^ftp: 1440 20% 10080 refresh_pattern ^gopher: 1440 0% 1440 refresh_pattern . 0 20% 4320 acl apache rep_header Server ^Apache broken_vary_encoding allow apache coredump_dir /var/spool/squid ※以上实验环境尽量用单网卡模拟真实的生产环境(如CDN系统),因为大家都只有一个公网IP的缘故。由于智能DNS的原因,用户最终解析到的主机就是离自己最近的squid服务器,笔者遇到过因为机房故障导致部分地区用户不能访问公司的web网站的故障,所以对squid服务的监控是非常重要的(这也是一个CDNS点必须有squid冗余的原因之一); http://hi.baidu.com/yuhongchun027
posted @ 2010-03-24 12:38  二宝的博客  阅读(217)  评论(0编辑  收藏  举报