varnish
1.虚拟机的封装
选择网络安装
安装地址
内存大小,当内存大小为512M时,安装系统时不会安装图形界面
配置虚拟硬盘
虚拟机名
语言
美式键盘
不使用IPV6
时区
root密码
安装
重启
关闭防火墙
设置selinux为disabled
配置ip
重启网络
配置yum源
配置本地解析
设置主机名
关闭该虚拟机,清除该虚拟机缓存
virt-sparsify --compress base.qcow2 new.qcow2 # 该命令可以对base.qcow2进行压缩
创建新虚拟机,该虚拟机读取new.qcow2 的系统文件
导入镜像
选择vm4
选择OS type 和Version
设置内存
设置虚拟机名
打开vm4 虚拟机,设置网络
设置主机名
2.varnish
server1:
yum install varnish-libs-3.0.5-1.el6.x86_64.rpm -y
yum install varnish-3.0.5-1.el6.x86_64.rpm -y
vim /etc/varnish/default.vcl
vim /etc/varnish/
/etc/init.d/varnish start
server2:
yum install httpd -y
vim /var/www/html/index.html
/etc/init.d/httpd start
主机:
查看缓存是否命中
server1:
vim /etc/varnish/default.vcl
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);
}
/etc/init.d/varnish reload
主机:
curl -I 172.25.61.1 #第一次访问,未命中缓存
curl -I 172.25.61.1 #第二次访问,命中缓存
清除varnish缓存
varnishadm ban.url # 清除所有缓存
varnishadm ban.url /index.html # 清除/index.html的缓存
清除varnish后,显示未命中缓存
定义多个不同域名站点的后端服务器
server1:
vim /etc/varnish/default.vcl
backend web1 {
.host = "172.25.61.2";
.port = "80";
}
backend web2 {
.host = "172.25.61.3";
.port = "80";
}
sub vcl_recv {
if (req.http.host ~ "^(www.)?westos.org") {
set req.http.host = "www.westos.org";
set req.backend = web1;
} elsif (req.http.host ~ "^www.linux.org") {
set req.backend = web2;
} else {error 404 "westos cache";
}
}
/etc/init.d/varnish reload
主机:
172.25.61.1 www.westos.org westos.org www.linux.org #设置本地解析
varnish实现轮循
server3:
vim /etc/httpd/conf/httpd.conf
NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot /var/www/html
ServerName www.linux.org
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /www1
ServerName www.westos.org
</VirtualHost>
mkdir /www1
vim /www1/index.html
<h1>server3-westos</h1>
server1:
vim /etc/varnish/default.vcl
director lb round-robin {
{.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;
} elsif (req.http.host ~ "^www.linux.org") {
set req.backend = web2;
} else {error 404 "westos cache";
}
}
/etc/init.d/varnish reload
varnishadm ban.url .*$ # 清除缓存后可以轮循
vim /etc/varnish/default.vcl # 添加return(pass)使不访问varnish缓存
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 ~ "^www.linux.org") {
set req.backend = web2;
} else {error 404 "westos cache";
}
}
设置最大文件数,最大锁定内存,最大进程数
arnish cdn 推送平台
server1:
yum install php -y
vim /etc/httpd/conf/httpd.conf
/etc/init.d/httpd start
unzip bansys.zip -d /var/www/html
vim /var/www/html/bansys/config.php
<?php
$var_group1 = array(
'host' => array('192.168.0.201'),
'port' => '6082',
);
//varnish 群组定义
//对主机列表进行绑定
$VAR_CLUSTER = array(
'www.westos.org' => $var_group1,
);
//varnish 版本//2.x 和 3.x 推送命令不一样
$VAR_VERSION = "3";
?>
# vi /etc/varnish/default.vcl
acl westos {
#设置访问控制
"127.0.0.1";
"172.25.61.0"/24;
}
sub vcl_recv {
if (req.request == "BAN") {
if (!client.ip ~ westos) {
error 405 "Not allowed.";
}
ban("req.url ~ " + req.url);
error 200 "ban added";
}
}