主机环境: rhel6 selinux and iptables disabled
实验主机 | IP | 服务 |
---|---|---|
server1 | 172.25.254.1 | varnish |
server2 | 172.25.254.2 | apache |
server3 | 172.25.254.3 | apache |
环境搭建:
1.获得6.5的镜像,在真机进行挂载;
2.打开虚拟控制器安装虚拟机,实现最小安装(内存设置为512M,硬盘20G)
3.安装配置过程
4.虚拟机配置
01.改主机解析,改主机名
vi /etc/hosts
vi /etc/sysconfig/network
02.删除eth0的系统硬件信息
03.修改IP,重启网络
vi /etc/sysconfig/network-scripts/ifcfg-eth0
/etc/init.d/network restart
04.配置yum源
05.关闭selinux
06.关闭火墙,设定开机不自启(rhel6.5里火墙采用的是iptables)
07.安装需要的软件
08.设置完成后poweroff,切忌不能reboot(设置会被还原)
5.删除虚拟机(不要删除文件)
6.创建快照,导入快照文件
cd /var/lib/libvirt/images/
qemu-img create -f qcow2 -b server1.qcow2 server1
7.配置三个虚拟机的主机名和网络(server1做过设置不需要重复操作)
另外的虚拟机操作同
测试
互相ping,看是否能通信
####################################################
##varnish反向代理搭建-单个后端服务器的varnish的部署##
####################################################
【代理端】: server1 172.25.254.1
【后端服务器】: server2 172.25.254.2
搭建步骤:
【server1】:
1.获得varnish包资源(可在官网下载)
varnish-3.0.5-1.el6.x86_64.rpm 与 varnish-libs-3.0.5-1.el6.x86_64.rpm
2.在server1上,安装varnish
3.配置 varnish 服务端口
vim /etc/sysconfig/varnish
8 NFILES=131072 #最多能打开的文件数131072,varnish会自动调整该值
12 MEMLOCK=82000 #最多能使用的内存空间82000,varnish会自动调整该值
15 NPROCS="unlimited" #单个用户所能允许的进程数不受限制
66 VARNISH_LISTEN_PORT=80
4.修改 varnish 用户的限制文件
vim /etc/security/limits.conf
# End of file
varnish - nofile 131072
varnish - memlock 82000
varnish - nproc unlimited
注意:varnish需要的资源,系统满足不到,因此需要让他受到限制,即给他营造假象
ulimit -a
#查看系统内存信息
sysctl -a | grep file
#查看系统文件数
5.配置后端服务器(修改通过代理服务器要访问的主机)
vim /etc/varnish/default.vcl
7 backend default {
8 .host = "172.25.254.2";
9 .port = "80";
10 }
6.开启服务,编写配置文件后要重新加载(切忌不能restart)
/etc/init.d/varnish start
/etc/init.d/varnish reload
【server2】:
1.安装apache服务
2.编写默认发布文件
cd /var/www/html/
vim index.html
1 server2
3.开启httpd服务
测试:
【客户端】:真机
curl 172.25.254.1(实际看到的是服务器)
####################################################
############### 查看是否命中缓存 ####################
####################################################
【代理端】server1 172.25.254.1
搭建步骤
1.在配置文件编辑是否命中反馈信息
vim /etc/varnish/default.vcl
11
12 sub vcl_deliver {
13 if (obj.hits>0){ #如果命中显示、、
14 set resp.http.X-Cache = "HIT from westos cache";
15 }
16 else {
17 set resp.http.X-Cache = "MISS from westos cache";
18 }
19 return (deliver);
20 }
2.重新加载配置文件信息
/etc/init.d/varnish reload
测试:
【客户端】:
1.查看是否命中代理服务器的缓存
curl -I 172.25.254.1
2.清除代理端的缓存,再次进行测试
varnishadm ban.url .*$ #清除所有缓存
测试:
varnishadm ban.url /index.html #清除url网页的缓存,可能并不会达到效果(再次执行清楚所有的命令)
测试:客户端通过 curl -I 172.25.254.1/index.html
会被清除缓存
注意:默认的缓存清除时间是120s(/etc/sysconfig/varnish)
补充:
url 是 统一资源定位符,对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。