在没有任何优化的情况下,每一个HTTP请求,web服务器都必须从服务器的磁盘中读取请求页面的数据,然后发送给客户端。相对内存访问速度来说,磁盘访问的速度及其缓慢(内存访问速度是磁盘访问速度的10的5次方到6次方倍)。把访问过的页面缓存到内存中,下次访问直接从内存中读取,能有效的加快web应用的访问速度。
传统代理与反向代理:
一般情况下,使用浏览器直接连接其他Internet站点取得网络信息,直接联系到目的站点服务器,目的站点服务器把信息传送回来。
介于客户端和web服务器端之间的另一台服务器称为代理服务器,浏览器不直接到web服务器取回网页,而向代理服务器发送请求,信号先送到代理服务器,由代理服务器取回浏览器所需要的信息并传送给浏览器。工作流程如下:

或者:
大部分代理服务器具有缓冲功能,好像一个cache,有很大的存储空间,不断的将新取得的数据缓存到本机的存储器上,如果本机的存储器上已经是存在的用户请求的数据而且是最新的,直接将存储器上的数据发送给用户,这样就能显著提高浏览速度和效率。
代理服务器所做的工作是将用户HTTP请求转发给web服务器,再将从web服务器处收到的响应数据发送给用户浏览器。所以从web服务器的角度看,代理服务器和用户浏览器的本质是一样的,他们都扮演着HTTP代理的角色。
Varnish 的安装和配置
下载源文件,按照以下过程安装。
# tar zxvf varnish-3.0.1.tar.gz
#cd varnish-3.0.1.tar.gz
假设安装在/usr/local/varnish下
#./configure --prefix = /usr/local/varnish
#make
#make install
使用如下的命令启动varnish
#varnishd -f /usr/local/varnish/etc/default.vcl -s malloc,128M \ -T 127.0.0.1:2000 -a:8080
或者:
#service varnish start
说明:
-f : 指定varnish使用的配置文件。
-s:确定varnish使用的存储类型和存储用量,这里使用malloc类型,也可以使用文件缓存,只需把malloc改为file即可。
-T:指定管理程序监听的地址和端口。在不重启varnish的情况下,通过这个程序管理varnish
-a:指定varnish监听的地址和端口。