您的位置:首页 > 其它

varnish 高速缓存

2017-04-06 22:13 465 查看
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") { ##如
4000
果输入为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 ]
在本机打开浏览器,访问测试





----------------------------------------------------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: