使用varnish加速多个不同域名站点的web服务器
配置xuegod64和xuegod62为web服务器
xuegod64之前已经配置成web服务器
配置xuegod62为web2服务器
[root@xuegod62 ~]# yum install httpd -y
[root@xuegod62 ~]# echo 192.168.1.62 > /var/www/html/index.html
[root@xuegod62 ~]# systemctl start httpd
配置xuegod63 上的varnish服务器
[root@xuegod63 ~]# vim /usr/local/varnish/etc/default.vcl
改:
16 backend web1 {
17 .host = "192.168.1.64";
18 .port = "80";
19 }
为:
16 backend web1 {
17 .host = "192.168.1.64";
18 .port = "80";
19 }
20 backend web2 {
21 .host = "192.168.1.62";
22 .port = "80";
23 }
当访问www.xuegod.cn域名时从web1上取数据,访问bbs.xuegod.cn域名时到web2取数据,访问其他页面报错。
[root@xuegod63 ~]# vim /etc/varnish/default.vcl #在之前的sub vcl_deliver { 。。。 } 之前,插入以下内容:
38 sub vcl_recv {
39 if (req.http.host ~ "^(www.)?xuegod.cn"){
40 set req.http.host = "www.xuegod.cn";
41 set req.backend_hint = web1;
42 } elsif (req.http.host ~ "^bbs.xuegod.cn") {
43 set req.backend_hint = web2;
44 }
45 }
46
47 sub vcl_deliver {
48 if (obj.hits > 0){
49 set resp.http.X-Cache = "HIT from linuxidc cache";
50 }
51 else {
52 set resp.http.X-Cache = "MISS from linuxidc cache";
53 }
54 return (deliver);
55 }
重启加载varnish配置文件
[root@xuegod63 ~]# killall varnishd
[root@xuegod63 ~]# varnishd -a 192.168.1.63:80,HTTP -f /usr/local/varnish/etc/default.vcl
测试:网页访问 www.xuegod.cn 和 bbs.xuegod.cn则会显示不同的内容。
在xuegod62上测试:
[root@xuegod62 ~]# vim /etc/hosts #添加hosts文件
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.62 xuegod62
192.168.1.63 www.xuegod.cn
192.168.1.63 bbs.xuegod.cn
[root@xuegod62 ~]# yum install elinks -y
[root@xuegod62 ~]# elinks www.xuegod.cn --dump
192.168.1.64
[root@xuegod62 ~]# elinks bbs.xuegod.cn --dump
192.168.1.62
测试报错信息:
http://192.168.1.63/