使用Varnish加速Web

本文介绍使用Varnish加速Web的方法。目标是加速后端Apache Web服务,可通过varnishadm管理缓存页面、varnishstat查看状态。方案是源码编译安装Varnish,修改配置文件实现加速。还给出构建Web服务器、部署Varnish缓存服务器及客户端测试的具体步骤。

使用Varnish加速Web

问题

通过配置Varnish缓存服务器,实现如下目标:
使用Varnish加速后端Apache Web服务
使用varnishadm管理缓存页面
使用varnishstat查看Varnish状态

方案

通过源码编译安装Varnish缓存服务器
编译安装Varnish软件
复制启动脚本与配置文件
修改配置文件,缓存代理源Web服务器,实现Web加速功能
使用3台RHEL6虚拟机,其中一台作为Web服务器(192.168.4.205)、一台作为Varnish代理服务器(192.168.4.5),另外一台作为测试用的Linux客户机(192.168.4.100),如图所示。
在这里插入图片描述
对于Web服务器的部署,此实验中仅需要安装httpd软件、启动服务,并生成测试首页文件即可,默认httpd网站根路径为/var/www/html,首页文档名称为index.html。

步骤

实现此案例需要按照如下步骤进行。
步骤一:构建Web服务器
1)使用yum安装web软件包

[root@pc205 ~]# yum  -y  install  httpd
.. ..
[root@pc205 ~]# rpm  -q  httpd
httpd-2.2.15-29.el6_4.x86_64

2)启用httpd服务,并设为开机自动运行

[root@pc205 ~]# service  httpd  restart  ;  chkconfig  httpd  on
Stopping httpd:										[FAILED]
Starting httpd:										[OK]

httpd服务默认通过TCP 80端口监听客户端请求:

[root@pc205 ~]# netstat  -anptu  |  grep httpd
tcp		0		0		:::80		:::*		LISTEN		2813/httpd

3)为Web访问建立测试文件
在网站根目录/var/www/html下创建一个名为index.html的首页文件:

[root@pc205 ~]# cat /var/www/html/index.html 
<html>
<title>Welcome</title>
<body>
<h1>hello</h1>
<h2>hello</h2>
</body>
</html>

步骤二:部署Varnish缓存服务器
1)编译安装软件

[root@svr5 ~]# yum -y install readline-devel pcre-devel	//安装软件依赖包
[root@svr5 ~]# useradd -s /sbin/nologin varnish				//创建账户
[root@svr5 ~]# tar -xzf varnish-3.0.6.tar.gz
[root@svr5 ~]# cd varnish-3.0.6
[root@svr5 varnish-3.0.6]# ./configure --prefix=/usr/local/varnish
[root@svr5 varnish-3.0.6]# make && make install

2)复制启动脚本及配置文件

[root@svr5 varnish-3.0.6]# cp redhat/varnish.initrc /etc/init.d/varnish
[root@svr5 varnish-3.0.6]# cp redhat/varnish.sysconfig /etc/sysconfig/varnish
[root@svr5 varnish-3.0.6]# cp redhat/varnish_reload_vcl /usr/bin/
[root@svr5 varnish-3.0.6]# ln -s /usr/local/varnish/sbin/varnishd /usr/sbin/

3)修改Varnish文件

[root@svr5 ~]# vim /etc/sysconfig/varnish
VARNISH_VCL_CONF=/etc/varnish/default.vcl				#vcl文件路径
VARNISH_LISTEN_PORT=80								#默认端口
VARNISH_SECRET_FILE=/etc/varnish/secret				#密钥文件
VARNISH_STORAGE_SIZE=64M								#缓存大小
VARNISH_STORAGE="malloc,${VARNISH_STORAGE_SIZE}"    	#基于内存方式

4)修改代理配置文件

[root@svr5 ~]# mkdir /etc/varnish
[root@svr5 ~]# cp /usr/local/varnish/etc/default.vcl /etc/varnish/
[root@svr5 ~]# uuidgen > /etc/varnish/secret
[root@svr5 ~]# vim  /etc/varnish/default.vcl
backend default {
     .host = "192.168.4.205";
     .port = "80";
 }
[root@svr5 ~]# service  varnish  start

步骤三:客户端测试
1)通过/etc/hosts文件,配置域名解析,将域名解析为Squid服务器IP地址

[root@client ~]# cat /etc/hosts
.. ..
192.168.4.5	www.tarena.com

2)客户端开启浏览器,分别访问两个不同的域名站点

[root@client ~]# firefox http://www.tarena.com
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值