varnish

1.虚拟机的封装

选择网络安装

varnish

安装地址

varnish

内存大小,当内存大小为512M时,安装系统时不会安装图形界面

varnish

配置虚拟硬盘

varnish

虚拟机名

varnish

语言

varnish

美式键盘

varnish

不使用IPV6

varnish

 

varnish

varnish

时区

varnish

root密码

varnish

varnish

varnish

安装

varnish

varnish

重启

varnish

关闭防火墙

varnish

设置selinux为disabled

varnish

配置ip

varnish

重启网络

varnish

配置yum源

varnish

配置本地解析

varnish

设置主机名

varnish

关闭该虚拟机,清除该虚拟机缓存

varnish

virt-sparsify --compress base.qcow2 new.qcow2   # 该命令可以对base.qcow2进行压缩

创建新虚拟机,该虚拟机读取new.qcow2 的系统文件

varnish

导入镜像

varnish

选择vm4

varnish

选择OS type 和Version

varnish

设置内存

varnish

设置虚拟机名

varnish

打开vm4 虚拟机,设置网络

varnish

设置主机名

varnish

 

2.varnish

server1:

yum install varnish-libs-3.0.5-1.el6.x86_64.rpm -y

varnish

yum install varnish-3.0.5-1.el6.x86_64.rpm -y

varnish

vim /etc/varnish/default.vcl

varnish

vim /etc/varnish/

varnish

/etc/init.d/varnish start

varnish

server2:

yum install httpd -y

varnish

vim /var/www/html/index.html

varnish

/etc/init.d/httpd start

varnish

主机:

varnish

 

查看缓存是否命中

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);
}

varnish

/etc/init.d/varnish reload

varnish

主机:

curl -I 172.25.61.1    #第一次访问,未命中缓存

varnish

curl -I 172.25.61.1 #第二次访问,命中缓存

varnish

 

清除varnish缓存

varnishadm ban.url  # 清除所有缓存

varnishadm ban.url /index.html  # 清除/index.html的缓存

varnish

清除varnish后,显示未命中缓存

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";
}
}

varnish

/etc/init.d/varnish reload

varnish

主机:

172.25.61.1  www.westos.org westos.org www.linux.org  #设置本地解析

varnish

varnish

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>

 

varnish

mkdir /www1

vim /www1/index.html

<h1>server3-westos</h1>

varnish

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";
}
}

varnish

/etc/init.d/varnish reload

 

varnishadm ban.url .*$   # 清除缓存后可以轮循

varnish

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";
}
}

varnish

varnish

 

设置最大文件数,最大锁定内存,最大进程数

varnish

varnish

varnish

varnish

 

arnish cdn 推送平台

server1:

yum install php -y

varnish

vim /etc/httpd/conf/httpd.conf

varnish

/etc/init.d/httpd start

varnish

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";
?>

varnish
# 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";
}
}

 

varnish

varnish