本篇内容主要讲解“varnish怎么配置”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“varnish怎么配置”吧!
server1:172.25.254.20 varnish
server2:172.25.254.21 http
主机:172.25.254.44
Varnish是一款高性能的开源HTTP加速器
在server1上:
#yum install varnish-3.0.5-1.el6.x86_64.rpm varnish-libs-3.0.5-1.el6.x86_64.rpm -y
# vim /etc/varnish/default.vcl
backend web1 {
.host = "127.0.0.1";
.port = "8080";
} #定义本机端口
sub vcl_deliver {
if obj.hits > 0) {
set resp.http.X-Cache = "HIT from westos cache";
}
else {
set resp.http.X-Cache = "MISS from westos cache";
}
return deliver);
} #定义是否命中
# yum install httpd -y
# cd /var/www/html
# echo server20.example.com > index.html
# vim /etc/httpd/conf/httpd.conf
# Listen 12.34.56.78:80
Listen 8080 #修改http端口,防止和varnish端口冲突
# /etc/init.d/httpd start
# netstat -antlp #查看http 8080 端口是否开启
# vim /etc/sysconfig/varnish
VARNISH_LISTEN_PORT=80 # varnish端口
# /etc/init.d/varnish start
[root@server20 html]# iptables -L
Chain INPUT policy ACCEPT)
target prot opt source destination
Chain FORWARD policy ACCEPT)
target prot opt source destination
Chain OUTPUT policy ACCEPT)
target prot opt source destination #查看本机火墙是否关闭
[root@foundation44 Desktop]# curl -I 172.25.254.20
HTTP/1.1 404 westos cache
Server: Varnish
Content-Type: text/html; charset=utf-8
Retry-After: 5
Content-Length: 398
Accept-Ranges: bytes
Date: Wed, 29 Jun 2016 10:11:45 GMT
X-Varnish: 1112141971
Age: 0
Via: 1.1 varnish
Connection: close
X-Cache: MISS from westos cache #此时未命中,说明还没有缓存
[root@foundation44 Desktop]# curl -I 172.25.254.20
HTTP/1.1 404 westos cach
Server: Varnish
Content-Type: text/html; charset=utf-8
Retry-After: 5
Content-Length: 398
Accept-Ranges: bytes
Date: Wed, 29 Jun 2016 10:15:02 GMT
X-Varnish: 1112141972
Age: 0
Via: 1.1 varnish
Connection: close
X-Cache: HIT from westos cache #此时命中,说明已经有缓存
# vim /etc/varnish/default.vcl
backend web2 {
.host = "172.25.254.21";
.port = "80";
}
director lb random { #把多个后端聚合在一起
{ .backend = web1;
.weight = 1;
}
{ .backend = web2;
.weight = 2;
}
}
sub vcl_recv {
if req.http.host ~ "^www.)?westos.org") {
set req.http.host = "www.westos.org";
set req.backend = lb;
returnpass); #为了方便,所以定义不缓存
} elsif req.http.host ~ "^bbs.westos.org") {
set req.backend = web2;
} else {
error 404 "westos cache";
}
} #如果访问其他会报错 404
# /etc/init.d/varnish reload
在server2上进行的操作
yum install httpd -y
# cd /var/www/html
# echo server21.example.com > index.html
# /etc/init.d/httpd start
# vim /etc/httpd/conf/httpd.conf
NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot /var/www/html
ServerName www.westos.org
serveralias westos.org
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /var/www/virtualhost/bbs
ServerName bbs.westos.org
</VirtualHost>
# mkdir -p /var/www/virtualhost/bbs
# cd /var/www/virtualhost/bbs/
# echo bbs.example.com > index.html
# /etc/init.d/httpd restart
# vim /etc/httpd/conf/httpd.conf
# /etc/init.d/httpd restart
然后在主机上加上 server1上和server2上相关的解析,在主机上火狐访问,或者用 curl -I www.westos.org