varnish及封装虚拟机

封装虚拟机

1、配置母盘rhel6.5(选择Network insatll)

1)物理机将6.5镜像挂载到/var/www/html/rhel6.5下

2)安装dhcp,配置好dhcp

3)Network insatll安装路径http://172.25.40.250:rhel6.5,选择最小化安装

4)将母盘配置好network;yum源;本地解析;删除/etc/udev/rules.d/70..文件;安装你需要的软件vim、openssh-clients、lftp等;关闭selinux和iptables;完成后选择poweroff关机

5)清理:virt-sysprep -d rhel6.5

2、进行虚拟机的封装:

1)cd /var/lib/libvirt/images/ 执行 qemu-img create -f qcow2 -b rhel6.5.qcow2 vm1 封装(依次封装你想要的虚拟机)

2)查看封装的虚拟机信息:qemu-img info vm1

3)选择import existing disk image图形化管理安装

4)进入后改主机名和ip

(libvirtd 是虚拟机管理软件)

varnish
1.启动varnish
server1:
yum install -y varnish3.0.5 和 varnish-libs.3.0.5 的rpm包

配置一个后端服务器
vim /etc/varnish/default.vcl

backend web1 {
.host = "172.25.40.2";
.port = "80";
}

配置 varnish 服务端口
vim /etc/sysconfig/varnish

VARNISH_LISTEN_PORT=80

server2:
开启http并 echo www.westos.org > index.html

测试:
物理机curl 172.25.40.1 查看是否为server2 apache提供的内容www.westos.org

2.查看缓存命中情况
server1
vim /etc/security/limits.conf

varnishi - nofile  65535

vim /etc/sysconfig/varnish

NFILES=65535

(其中,65535为文件的最大读取数,可使用命令sysctl -a | grep file 查看)

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.40.1,显示HIT 和MISS 的情况

(其中,清除缓存命令:varnishadm ban.url .*$)

3.定义多个不同域名站点的后端服务器

server1安装apche服务,即做varnish也作apache服务(或者使用server3做后端)

修改apache端口 vim /etc/httpd/conf/httpd.conf (避免80端口varnish冲突)

Listen 8080

编辑varnish配置文件,加入个不同域名站点的后端服务器:

当访问 www.westos.org 域名时从 web1 上取数据,访问 bbs.westos.org 域名时到 web2 取数据,
访问其他页面报错。

vim /etc/varnish/default.vcl

整体代码如下:

backend web1 {
  .host = "172.25.40.1";
  .port = "8080";
}

backend web2 {
  .host = "172.25.40.2";
  .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 ~ "^bbs.westos.org") {
set req.backend = web2;
}else {error 404 "westos cache";
}
}

(其中,物理机做解析)
4.把多个后端聚合为一个组,并检测后端健康状况

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;
return(pass);
}elsif (req.http.host ~ "^bbs.westos.org") {
set req.backend = web2;
}else {error 404 "westos cache";
}
}

return(pass)表示不进行缓存

5.varnish cdn 推送平台

1)server1安装php服务

2)更改php配置文件;将其放到/var/www/html下

V A R C L U S T E R = a r r a y ( w w w . w e s t o s . o r g => var_group1,
);表示对主机列表进行绑定

3)真机网页查:172.25.77.8080:/varnish查看

6.设置acl访问控制

1)server1 /etc/varnish/default.vcl 设置

ub vcl_recv {
if (req.request == “BAN”) {
if (!client.ip ~ westos) {
error 405 “Not allowed.”;
}
ban(“req.url ~ ” + req.url);
error 200 “ban added”;
}
}

2)重新打开ip不再acl列表的机器进行访问查看

猜你喜欢

转载自blog.csdn.net/liuyong1_/article/details/80210303