squid轮询调度服务器(Round-robin)
轮询意义
在企业生产环境中,我们为了避免单台服务器的负载过高,常常使用多台服务器维护一个域名的工作运转,作为一台squid代理服务器,可以采用轮询访问的方式访问站点服务器,使之负载均衡。
我们接下来的实验是初步简单展示了一下,如何使代理服务器进行轮询访问。
实验
配置两台apache服务器
在两台虚拟机中,分别修改主机名为web1、web2,分别安装apache,并添加对应的发布文件,实际上企业中两个站点(多个)是一样的页面,我们为了效果,写成不一样的发布文件。
配置squid代理调度服务器
- 第一步:安装squid并修改配置文件
yum install squid -y
vim /etc/squid/squid.conf
写入:
56 http_access allow all
57
58 # Squid normally listens to port 3128
59 http_port 80 vhost vport
##利用80端口访问apache的资源,写入apache的虚拟主机和虚拟端口
60 cache_peer 172.25.254.202 parent 80 0 proxy-only no-query round-robin origin server name=web1
61 cache_peer 172.25.254.125 parent 80 0 proxy-only no-query round-robin origin server name=web2 weight=2
62 cache_peer_domain web1 web2 www.shenzhen.com
63
64
65 # Uncomment and adjust the following to add a disk cache directory.
66 cache_dir ufs /var/spool/squid 100 16 256
注意:cache_peer 172.25.254.200 parent 80 0 proxy-only no-query round-robin origin server name=web2 weight=2
对应的参数含义按顺序分别是:
cache_peer缓存点
远程真实服务器IP
类型:父级资源
0是没有备用端口
只作代理
web服务器ip
不去问邻居
轮询
标示主机是web服务器
分别是不同名主机名
修改权重,默认为1:1,现在是权重为2,即访问两次
cache_peer_domain web1 web2 www.shenzhen.com 对应参数分别是:
缓存点的域为web1 web2 都对应的域名
- 第二步:重启服务,并关闭火墙。
真实主机测试:
写入本地域名解析:
172.25.254.225 www.shenzhen.com
squid的IP —— 对应域名
在真机打开浏览器测试:输入 www.shenzhen.com
发现:当请求来时,即刷新页面时,会在权重为2的web2页面停留两次,在web1页面停留一次。
在真实的环境中,其实两个页面是一样的,用户察觉不出来,实际上分配在不同的服务器上,避免了单台主机过载,实现了负载均衡。