高性能HTTP加速器Varnish——负载均衡
1. 负载均衡
如果用户使用率较高时,我们可以指定一个后端服务器工作一次,就换另一个服务器,两个服务器轮流工作,会减小服务器的压力,也就是轮询。
2. 配置apache虚拟主机
在server3中:
vim /etc/httpd/conf.d/vhost.conf
<VirtualHost *:80>
DocumentRoot /www
ServerName www.kaiser.org
</VirtualHost>
<Directory "/www">
Require all granted
</Directory>
<VirtualHost *:80>
DocumentRoot /bbs
ServerName bbs.kaiser.org
</VirtualHost>
<Directory "/bbs">
Require all granted
</Directory>
mkdir /www
mkdir /bbs
vim /www/index.html
server3:www.kaiser.org
vim /bbs/index.html
server3:bbs.kaiser.org
systemctl restart httpd
注意:这里的测试页面内容便于观察实验效果,内容不同。
3. 配置代理服务器Varnish
在server1中:
vim /etc/varnish/default.vcl
#导入重要模块:(这个模块一定要导入,不然会报错!)
14 import directors from "/usr/lib64/varnish/vmods/libvmod_directors.so";
#定义负载均衡:
26 sub vcl_init {
27 new lb = directors.round_robin();
28 lb.add_backend(web1);
29 lb.add_backend(web2);
30 }
#指定轮询的后端服务器:
39 set req.backend_hint = lb.backend();
40 return(pass);
systemctl restart varnish
注意:此处的return (pass)
是为了查询一次就清除一次缓存,避免缓存对实验效果的影响
4. 测试
在客户端(真机)中:
curl www.kaiser.org
curl bbs.kaiser.org
可以看到访问www.kaiser.org时,一次使用后端服务器server2,一次使用后端服务器server3,这就是轮询的效果
但是如果访问bbs.kaiser.org时,则一直是访问server3服务器,因为没有使用负载均衡