一.虚拟机的封装
1.安装虚拟机(母盘)
2.配置母盘操作
2.1删除文件,防止格式化
如果不删除等你启动东西的时候会失败
2.2配置网络
vi /etc/sysconfig/network-scripts/ifcfg-eth0
2.3配置yum源
vi /etc/yum.d/rhel-source.repo
2.4配置域名解析
vi /etc/hosts
2.5永久修改域名
2.6关闭防火墙
[root@localhost ~]# chkconfig iptables off
[root@localhost ~]# /etc/init.d/iptables stop
2.7关闭selinux
vim /etc/sysconfig/selinux
母盘关机后,不能再次打开,再次打开会导致母盘损坏
3.虚拟机(子镜像)的安装
3.1首先对母盘做以下处理
[root@foundation24 images]# qemu-img create -f qcow2 -b new.qcow2 test1
Formatting 'test1', fmt=qcow2 size=21474836480 backing_file='new.qcow2' encryption=off cluster_size=65536 lazy_refcounts=off
[root@foundation24 images]# qemu-img create -f qcow2 -b new.qcow2 test2
Formatting 'test2', fmt=qcow2 size=21474836480 backing_file='new.qcow2' encryption=off cluster_size=65536 lazy_refcounts=off
[root@foundation24 images]# qemu-img create -f qcow2 -b new.qcow2 test3
Formatting 'test3', fmt=qcow2 size=21474836480 backing_file='new.qcow2' encryption=off cluster_size=65536 lazy_refcounts=off
这里的new.qcow2是我压缩过的镜像文件。
3.2虚拟机的安装
virt-manage 打开图形安装
依次安装三个虚拟机作为备用
二.varnish
处理过程大致分为如下几个步骤:
(1)Receive 状态,也就是请求处理的入口状态,根据 VCL 规则判断该请求应该是 Pass 或
Pipe,或者进入 Lookup(本地查询)。
(2)Lookup 状态,进入此状态后,会在 hash 表中查找数据,若找到,则进入 Hit 状态,否则进
入 miss 状态。
(3)Pass 状态,在此状态下,会进入后端请求,即进入 fetch 状态。
(4)Fetch 状态,在 Fetch 状态下,对请求进行后端的获取,发送请求,获得数据,并进行本地
的存储。
(5)Deliver 状态, 将获取到的数据发送给客户端,然后完成本次请求。
1.安装
yum localinstall -y varnish-3.0.3-1.el6.x86_64.rpm varnish-libs-3.0.3-1.el6.x86_64.rpm
这个软自己想办法传入自己需要的虚拟机
[root@server1 ~]# yum provides */scp ##可以查找到scp服务所需的文件
[root@server1 ~]# yum install openssh-clients-5.3p1-94.el6.x86_64 -y
[root@server1 ~]# yum install varnish-libs-3.0.5-1.el6.x86_64.rpm varnish-3.0.5-1.el6.x86_64.rpm -y
2.配置
server1:varnish服务器
server2:apache
server3: apache
真机: 测试端
server1:
[root@server1 varnish]# vim /etc/sysconfig/varnish ##配置端口为80
[root@server1 varnish]# vim /etc/security/limits.conf
server2:
[root@server2 ~]# /etc/init.d/httpd start
Starting httpd: httpd: Could not reliably determine the server's fully qualified domain name, using 172.25.24.2 for ServerName
[ OK ]
[root@server2 ~]# cd /var/www/html/
[root@server2 html]# vim index.html
真机:
本地域名解析
[root@foundation24 Desktop]# vim /etc/hosts
测试是否搭建成功:
[root@server1 varnish]# vim default.vcl ##打开配置文件
oot@server1 varnish]# /etc/init.d/varnish reload ##刷新
配置一个后端服务器
在浏览器测试:
2.1查看命中缓存情
varnish配置:
真机:
Content-Type: text/html; charset=UTF-8
Content-Length: 22
Accept-Ranges: bytes
Date: Fri, 24 Aug 2012 14:30:40 GMT
X-Varnish: 766467032
Age: 0
Via: 1.1 varnish
Connection: keep-alive
X-Cache: MISS from westos cache #未命中
# curl -I 192.168.0.250
HTTP/1.1 200 OK
Server: Apache/2.2.15 (Red Hat)
Last-Modified: Mon, 20 Aug 2012 15:22:19 GMT
ETag: "1c13aa-16-4c7b4135e08a6"
Content-Type: text/html; charset=UTF-8
Content-Length: 22
Accept-Ranges: bytes
Date: Fri, 24 Aug 2012 14:30:54 GMT
X-Varnish: 766467033 766467032
Age: 14
Via: 1.1 varnish
Connection: keep-alive
X-Cache: HIT from westos cache
#命中
2.2手动清除缓存
varnishadm ban.url .*$清除所有
varnishadm ban.url /index.html 清除 index.html 页面缓存
varnishadm ban.url /admin/$ 清除 admin 目录缓存
可以清楚看见清除完之后的时间变化
2.4定义多个不同域名站点的后端服务器
定义多个不同域名站点的后端服务器
backend web1 {
.host = “192.168.0.188”;
.port = “80”;
}
backend web2 {
.host = “192.168.0.189”;
.port = “80”;
}
当访问 www.westos.org 域名时从 web1 上取数据,访问 bbs.westos.org 域名时到 web2 取数据,
访问其他页面报错。
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”;
}
这个实验需要三个虚拟机:
server1
server2
server3
server3:打开apache ,在httpd下配置一个index.html文件
server1:打开varnish配置服务
真机测试:
2.5定义
backend web1 {
.host = “192.168.0.2”;
.port = “80”;
.probe = healthcheck;
}
backend web2 {
.host = “192.168.0.3”;
.port = “80”;
.probe = healthcheck;
}
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”;
}
}
“`
[root@server3 ~]# cd /var/www/html/
[root@server3 html]# ls
[root@server3 html]# vim index.html
[root@server3 html]# vim /etc/httpd/conf/httpd.conf
[root@server3 html]# mkdir /www1
[root@server3 html]# cd /www1/
[root@server3 www1]# vim index.html
[root@server3 www1]# vim /etc/hosts
[root@server3 www1]# curl www.westos.org
bbs.westos.org
[root@server3 www1]# curl bbs.westos.org
bbs.westos.org
“`