Vainish是一款高性能且开源的反向代理服务器和http加速器。
与传统的squid相比,Varnish具有性能更高、速度更快等诸多优点。
Varnish服务器
--/etc/varnish #配置文件目录
/etc/init.d/varnish #varnish的启动程序
/etc/sysconfig/varnish #配置文件,varnish定义自身属性
/etc/varnish/default.vcl #默认配置文件,定义后端节点
--/usr/bin/varnishadm #客户端程序
--/usr/bin/varnishstat #状态监控
使用Varnish加速Web
通过配置Varnish缓存服务器,实现如下目标:
1,使用Varnish加速后端Apache Web服务
2,使用varnishadm命令管理缓存页面
3,使用varnishstat命令查看Varnish状态
方案
1,通过源码编译安装Varnish缓存服务器
2,编译安装Varnish软件
3,复制启动脚本与配置文件
使用3台RHEL7虚拟机,其中一台作为varnish服务器,
该服务器用来连接两个网段,因此需要配置两块网卡,
地址分别为192.168.4.5和192.168.2.5
一台作为客户端测试主机,IP地址为192.168.4.100。
一台Web服务器,地址为192.168.2.100,
该Web服务器为其他代理提供Web数据源。
步骤
步骤一:构建Web服务器
1)使用yum安装web软件包
[[email protected] ~]# yum -y install httpd
2)启用httpd服务,并设为开机自动运行
[[email protected] ~]# systemctl start httpd
[[email protected] ~]# systemctl enable httpd
3)为Web访问建立测试文件
[[email protected] ~]#echo "i am 192.168.2.100"
步骤二:部署Varnish缓存服务器
1)编译安装软件
[[email protected] ~]#yum -y install gcc readline-devel pcre-devel //安装软件依赖包
[[email protected] ~]# useradd -s /sbin/nologin varnish //创建账户
[[email protected] ~]# tar -xzf varnish-3.0.6.tar.gz
[[email protected] ~]# cd varnish-3.0.6
[[email protected] varnish-3.0.6]# ./configure --prefix=/usr/local/varnish
[[email protected] varnish-3.0.6]# make && make install
2)复制启动脚本及配置文件
[[email protected] varnish-3.0.6]#cd redhat/
[[email protected] redhat]# cp redhat/varnish.initrc /etc/init.d/varnish
[[email protected] redhat]# cp redhat/varnish.sysconfig /etc/sysconfig/varnish
[[email protected] redhat]# ln -s /usr/local/varnish/sbin/varnishd /usr/sbin/
[[email protected] redhat]# ln -s /usr/local/varnish/bin/* /usr/bin/
3)修改Varnish文件
[[email protected] ~]# vim /etc/sysconfig/varnish
66行:VARNISH_LISTEN_PORT=80 #默认端口
89行:VARNISH_STORAGE_SIZE=64M #定义缓存大小
92行:VARNISH_STORAGE="malloc,${VARNISH_STORAGE_SIZE}" #基于内存方式缓存
4)修改代理配置文件
[[email protected] ~]# mkdir /etc/varnish
[[email protected] ~]# cp /usr/local/varnish/etc/varnish/default.vcl /etc/varnish/
[[email protected] ~]# uuidgen > /etc/varnish/secret
[[email protected] ~]# vim /etc/varnish/default.vcl
backend default {
.host = "192.168.2.100";
.port = "80";
}
[[email protected] ~]# service varnish start
步骤三:客户端测试
[[email protected] ~]# curl http://192.168.4.5
其他操作
1)查看varnish日志
[[email protected] ~]# varnishlog //varnish日志
[[email protected] ~]# varnishncsa //访问日志,实时日志,在客户端访问才能看到日志
2)更新缓存数据,在后台web服务器更新页面内容后,
用户访问代理服务器看到的还是之前的数据,
说明缓存中的数据过期了需要更新(默认也会自动更新,但非实时更新)。
[[email protected] ~]# varnishadm –S /etc/varnish/secret –T 127.0.0.1:6082 ban.url 页面文件名
#清空缓存数据,支持正则表达式(非交互)
[[email protected] ~]#varnishadm stop #停止服务
[[email protected] ~]#varnishadm start #启动服务
[[email protected] ~]#varnishadm status #查看状态
[[email protected] ~]#varnishadm ban.url / #清空缓存
缓存过期:
1)等待更新
2)手动更新(在/etc/sysconfig/varnish查看端口以及安全文件)(交互)
varnishadm –S /etc/varnish/secret –T 127.0.0.1:6082 #进入
backend.list #查看后端的信息
ban.url .* #所有更新
原文地址:http://blog.51cto.com/13463622/2060757