varnish服务器
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软件包[root@web1 ~]# yum -y install httpd2)启用httpd服务,并设为开机自动运行[root@web1 ~]# systemctl start httpd[root@web1 ~]# systemctl enable httpd3)为Web访问建立测试文件[root@web1 ~]#echo "i am 192.168.2.100"步骤二:部署Varnish缓存服务器1)编译安装软件[root@svr5 ~]#yum -y install gcc 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 install2)复制启动脚本及配置文件[root@svr5 varnish-3.0.6]#cd redhat/[root@svr5 redhat]# cp redhat/varnish.initrc /etc/init.d/varnish[root@svr5 redhat]# cp redhat/varnish.sysconfig /etc/sysconfig/varnish[root@svr5 redhat]# ln -s /usr/local/varnish/sbin/varnishd /usr/sbin/[root@svr5 redhat]# ln -s /usr/local/varnish/bin/* /usr/bin/3)修改Varnish文件[root@svr5 ~]# vim /etc/sysconfig/varnish66行:VARNISH_LISTEN_PORT=80 #默认端口89行:VARNISH_STORAGE_SIZE=64M #定义缓存大小92行:VARNISH_STORAGE="malloc,${VARNISH_STORAGE_SIZE}" #基于内存方式缓存4)修改代理配置文件[root@svr5 ~]# mkdir /etc/varnish[root@svr5 ~]# cp /usr/local/varnish/etc/varnish/default.vcl /etc/varnish/[root@svr5 ~]# uuidgen > /etc/varnish/secret[root@svr5 ~]# vim /etc/varnish/default.vclbackend default { .host = "192.168.2.100"; .port = "80"; }[root@svr5 ~]# service varnish start步骤三:客户端测试[root@client ~]# curl http://192.168.4.5其他操作1)查看varnish日志[root@svr5 ~]# varnishlog //varnish日志[root@svr5 ~]# varnishncsa //访问日志,实时日志,在客户端访问才能看到日志2)更新缓存数据,在后台web服务器更新页面内容后, 用户访问代理服务器看到的还是之前的数据, 说明缓存中的数据过期了需要更新(默认也会自动更新,但非实时更新)。[root@svr5 ~]# varnishadm –S /etc/varnish/secret –T 127.0.0.1:6082 ban.url 页面文件名#清空缓存数据,支持正则表达式(非交互)[root@svr5 ~]#varnishadm stop #停止服务[root@svr5 ~]#varnishadm start #启动服务[root@svr5 ~]#varnishadm status #查看状态[root@svr5 ~]#varnishadm ban.url / #清空缓存缓存过期:1)等待更新2)手动更新(在/etc/sysconfig/varnish查看端口以及安全文件)(交互)varnishadm –S /etc/varnish/secret –T 127.0.0.1:6082 #进入backend.list #查看后端的信息ban.url .* #所有更新