使用Varnish加速Web

1.1 问题

通过配置Varnish缓存服务器,实现如下目标:

使用Varnish加速后端Apache Web服务

使用varnishadm命令管理缓存页面

使用varnishstat命令查看Varnish状态

1.2 方案

通过源码编译安装Varnish缓存服务器

编译安装Varnish软件

复制启动脚本与配置文件

修改配置文件,缓存代理源Web服务器,实现Web加速功能

使用3台RHEL7虚拟机,其中一台作为Web服务器(192.168.2.100)、一台作为Varnish代理服务器(192.168.4.5,192.168.2.5),另外一台作为测试用的Linux客户机(192.168.2.100)对于Web服务器的部署,此实验中仅需要安装httpd软件、启动服务,并生成测试首页文件即可,默认httpd网站根路径为/var/www/html,首页文档名称为index.html

1.3 步骤

实现此案例需要按照如下步骤进行。

步骤一:构建Web服务器

1)使用yum安装web软件包

[[email protected] ~]# yum  -y  install  httpd

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

[[email protected] ~]# systemctl start httpd  ;  systemctl enable httpd

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

[[email protected] ~]# netstat  -anptu  |  grep httpd

tcp        0        0        :::80        :::*        LISTEN        2813/httpd

3)为Web访问建立测试文件

在网站根目录/var/www/html下创建一个名为index.html的首页文件

[[email protected] ~]# echo "这是Varnish的测试页面..A.." > /var/www/html/index.html

步骤二:部署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]# cp redhat/varnish.initrc /etc/init.d/varnish

[[email protected] varnish-3.0.6]# cp redhat/varnish.sysconfig /etc/sysconfig/varnish

[[email protected] varnish-3.0.6]# ln -s /usr/local/varnish/sbin/varnishd /usr/sbin/

[[email protected] varnish-3.0.6]# 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=60M                                #定义缓存大小

92行:VARNISH_STORAGE="malloc,${VARNISH_STORAGE_SIZE}"        #基于内存方式缓存

4)修改代理配置文件

[[email protected] ~]# mkdir /etc/varnish

[[email protected] ~]# cp /usr/local/varnish/etc/default.vcl /etc/varnish/

[[email protected]~]# uuidgen > /etc/varnish/secret

[[email protected] ~]# vim  /etc/varnish/default.vcl

backend default {

.host = "192.168.2.100"; //改成口端服务器的IP

.port = "80";    //改称80端口

}

[[email protected] varnish-3.0.6]# /etc/init.d/varnish

Usage: /etc/init.d/varnish {start|stop|status|restart|condrestart|try-restart|reload|force-reload} //是一个自带的脚本,启服务..等用这个脚本就可以啦

步骤三:客户端测试

1)客户端开启浏览器访问

[[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

会进到一个这样的页面

200

-----------------------------

Varnish Cache CLI 1.0

-----------------------------

Linux,3.10.0-327.el7.x86_64,x86_64,-smalloc,-smalloc,-hcritbit

varnish-3.0.6 revision 1899836

Type ‘help‘ for command list.

Type ‘quit‘ to close CLI session.

varnish> ban.url 页面文件名

ban.url 页面文件名

//清空缓存数据,支持正则表达式

时间: 2024-08-03 17:44:45

使用Varnish加速Web的相关文章

高级运维(一):反向代理&使用Varnish加速Web

案例1.反向代理      目标: 1.代理服务器可以将远程的Web服务器页面缓存于本地 2.代理服务器端口设置为80端口 3.用户通过访问代理服务器即可获得远程Web服务器页面上的内容 4.远程Web服务器对客户端用户是透明的 5.利用缓存机制提高网站响应速度      方案: 使用3台RHEL7虚拟机,一台作为Squid代理服务器,需要配置两个网卡(连接不同网段),地址分别为192.168.4.5.192.168.2.5.一台作为客户端测试主机,IP地址为192.168.4.100.一台作为

17_安装部署Tomcat服务器、使用Tomcat部署虚拟主机、使用Varnish加速Web

1.安装部署Tomcat服务器官网:https://tomcat.apache.org/ proxy   10.10.11.10client  10.10.11.11web1    10.10.11.12web2    10.10.11.13 web1:1.1 使用RPM安装JDK环境]# yum -y install java-1.8.0-openjdk]# yum -y install java-1.8.0-openjdk-headless]# java -version # 查看JAVA版

使用Varnish为web网站加速

使用Varnish为网站加速 varnish概述     Varnish是一款高性能的开源HTTP加速器,挪威最大的在线报纸Verdens Gang (http://www.vg.no) 使用3台Varnish代替了原来的12台squid,性能居然比以前更好.Varnish 的作者Poul-Henning Kamp是FreeBSD的内核开发者之一,他认为现在的计算机比起1975年已经复杂许多.在1975年时,储存媒介只有两种:内存与硬盘.但现在计算机系统的内存除了主存外,还包括了cpu内的L1.

Varnish实现Web缓存

varnish实现Web缓存 一.varnish简介 Varnish 的作者Poul-Henning Kamp是FreeBSD的内核开发者之一,他认为现在的计算机比起1975年已经复杂许多.在1975年时,储存媒介只有两种:内存与硬盘.但现在计算 机系统的内存除了主存外,还包括了CPU内的L1.L2,甚至有L3快取.硬盘上也有自己的快取装置,因此Squid Cache自行处理物件替换的架构不可能得知这些情况而做到最佳化,但操作系统可以得知这些情况,所以这部份的工作应该交给操作系统处理,这就是 V

使用Emmet(前身Zen Coding)加速Web前端开发

这篇文章对Emmet使用说明比较详细,于是就收了~~~ 转载:Web前端开发-Web前端工程师 » 使用Emmet(前身Zen Coding)加速Web前端开发 Emmet插件以前被称作为Zen Coding,是一个文本编辑器的插件,它可以帮助您快速编写HTML和CSS代码,从而加速Web前端开发.早在2009年,Sergey Chikuyonok写过一篇文章,提出编写HTML和CSS的新方法.这一革命性的插件指的就是Zen Coding,经过很多开发者多年来的努力与帮助,现在已达到了一个新的水

使用Emmet加速Web前端开发

Emmet插件以前被称作为Zen Coding,是一个文本编辑器的插件,它可以帮助您快速编写HTML和CSS代码,从而加速Web前端开发.早在2009年,Sergey Chikuyonok写过一篇文章,提出编写HTML和CSS的新方法.这一革命性的插件指的就是Zen Coding,经过很多开发者多年来的努力与帮助,现在已达到了一个新的水平.也就是今天所说的Emme插件. 在这篇文章中,我们将要学习如何使用Emmet语法来生成HTML和CSS代码. 安装Emmet插件 Emmet只是文本编辑器一个

varnish实现web加速缓存

一.Varnish简述 varnish是一款高性能且开源的方向代理服务器和HTTP加速器,它的开发者poul-Henning kamp是FreeBSD 核心的开发人员之一.varnish采用全新的软件体系机构,和现在的硬件体系配合紧密,varnish是一个轻量级的cache和反向代理软件.先进的设计理念和成熟的设计框架是varnish的主要特点.挪威最大的在线报纸 Verdens Gang 使用3台Varnish服务器 代替了原来的12台Squid服务器,结果性能比以前更好. 二.varnish

Haproxy + Varnish 实现WEB静态页面缓存

一.缓存介绍及Haproxy+Varnish架构图: 1.)简介:现阶段的互联网时代,缓存成为一个必不可少的一环,不论是对于整体架构的优化,减少服务器的压力,加速用户访问速度,都是需要用到缓存.而缓存的种类也是很多,例如CDN,Squid,Memcached,Varnish,已经成为一个中型,大型架构中基本的实现. 2.)CDN缓存技术是根据全国各地的用户,直接缓存到离用户最近的地方. 3.)Squid是处于前端的缓存,并且可以用作为正向代理,反向代理,透明代理. 4.)Memcached主要用

Varnish+缓存Web站

服务器IP配置如图: OS IP 子网掩码 路由网关 Centos6.6 (Web1静态) Eth0:192.168.10.1 255.255.255.0 Centos6.6 (Web2动态) Eth0:192.168.10.2 255.255.255.0 Centos6.6 (varnish) Eth0:192.168.26.210 255.255.252.0 192.168.25.3 Eth1:192.168.10.3 255.255.255.0 安装varnish:yum install