varnish 高速缓存

1.安装包

varnish-3.0.5-1.el6.x86_64.rpm

varnish-libs-3.0.5-1.el6.x86_64.rpm

2.操作步骤

(1)一个节点

[root@server1 ~]# rpm -ivh varnish-3.0.5-1.el6.x86_64.rpm varnish-libs-3.0.5-1.el6.x86_64.rpm
Preparing...                ########################################### [100%]
   1:varnish                ########################################### [100%]
[root@server1 ~]# cd /etc/varnish/
[root@server1 varnish]# vim default.vcl ##编辑文件,与主机IP为2相关联,端口为80
backend web1 {
  .host = "172.25.38.2";
  .port = "80";
}
[root@server1 varnish]# vim /etc/sysconfig/varnish ##编写配置文件,监听端口80
 66 VARNISH_LISTEN_PORT=80


[root@server2 ~]# yum install -y httpd ##安装httpd
[root@server2 ~]# echo server2.example.com > /var/www/html/index.html##编写测试文件
[root@server2 ~]# /etc/init.d/httpd start ##开启httpd
Starting httpd:                                            [  OK  ]
[root@server2 ~]# netstat -antlp##查看端口,是否开启服务
tcp        0      0 :::80                       :::*                        LISTEN      0          9988       1256/httpd 


[root@foundation38 Desktop]# vim /etc/hosts ##在测试机上,要做解析域名
172.25.38.1 server1.example.com www.westos.org westos.org bbs.westos.org
172.25.38.2 server2.example.com
172.25.38.3 server3.example.com


在本机打开浏览器,访问测试



(2)两个节点

[root@server3 ~]# yum install -y httpd##安装httpd
[root@server3 ~]# echo server3.example.com > /var/www/html/index.html##编写测试文件
[root@server3 ~]# /etc/init.d/httpd start##开启服务
Starting httpd:                                            [  OK  ]
[root@server3 ~]# netstat -antlp##查看端口
tcp        0      0 :::80                       :::*                        LISTEN      0          9988       1256/httpd

[root@server1 varnish]# vim default.vcl ##编辑文件
backend web1 {
  .host = "172.25.38.2";
  .port = "80";
}
 
backend web2 {
  .host = "172.25.38.3";
  .port = "80";
}
sub vcl_recv {
if (req.http.host ~ "^(www.)?westos.org") { ##如果输入为westos.org,自动补全为www.westos.org
set req.http.host = "www.westos.org";
set req.backend = web1;##满足上述条件,选择web1
}
elsif (req.http.host ~ "^bbs.westos.org") {##如果是bbs开头,则选择web2
set req.backend = web2;
}
else {error 404 "westos cache";##如果上述条件都不满足,则给出错误提示
}
}
[root@server1 varnish]# /etc/init.d/varnish restart##更改配置文件后,重启服务
Stopping Varnish Cache:                                    [  OK  ]
Starting Varnish Cache:           


在本机打开浏览器,访问测试



(3)cluster

[root@server3 ~]# vim /etc/httpd/conf/httpd.conf ##添加虚拟主机
NameVirtualHost *:80
<VirtualHost *:80>
    DocumentRoot /var/www/html
    ServerName server3.example.com
</VirtualHost>
 
<VirtualHost *:80>
    DocumentRoot /var/www/html/www1##虚拟主机1发布目录
    ServerName www.westos.org
</VirtualHost>
 
<VirtualHost *:80>
    DocumentRoot /var/www/html/www2##虚拟主机2发布目录
    ServerName bbs.westos.org
</VirtualHost>
[root@server3 ~]# mkdir /var/www/html/www1##创建目录
[root@server3 ~]# mkdir /var/www/html/www2##创建目录
[root@server3 www1]# echo server3.example.com-www1 >/var/www/html/www1/index.html##编写测试文件
[root@server3 www1]# echo server3.example.com-www2 >/var/www/html/www2/index.html##编写测试文件
[root@server3 www1]# /etc/init.d/httpd restart##更改配置后,重启服务
Stopping httpd:                                            [  OK  ]
Starting httpd:                                            [  OK  ]
 

[root@server1 varnish]# vim default.vcl##编辑配置文件
backend web1 {
  .host = "172.25.38.2";
  .port = "80";
}
 
backend web2 {
  .host = "172.25.38.3";
  .port = "80";
}
director lb round-robin {##仲裁机制随机选取,把web1、web2加入到lb组里面
{.backend = web1;}
{.backend = web2;}
}
 
 
sub vcl_recv {
if (req.http.host ~ "^(www.)?westos.org") {
set req.http.host = "www.westos.org";
set req.backend = lb;
return (pass);##此处为了测试结果明显,加入此句。句意为:不从缓存取数据,直接从后端取数据
}
elsif (req.http.host ~ "^bbs.westos.org") {
set req.backend = web2;
}
else {error 404 "westos cache";
}
}
[root@server1 varnish]# /etc/init.d/varnish restart
Stopping Varnish Cache:                                    [  OK  ]
Starting Varnish Cache:                                    [  OK  ]

在本机打开浏览器,访问测试


----------------------------------------------------


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值