Blog

DirectAdmin安装Varnish 缓存

     DA面板安装Varnish缓存。Varnish  是一款高性能的开源 HTTP 加速器,可将网页缓存到内存,实现非凡的速度和降压效果。

文中以 Apache 2.2 作为示范,如果自己的主机安装的是 Apache 2.4 的话还是比较建议自己研究一下如何使用 mod_remoteip 来获取真实 ip。


本文仅适合 RHCL/CentOS 类系统

一、第一步:安装依赖 & 导入 rpm 包。

依赖直接使用 yum 安装即可。


yum -y install automake autoconf libtool ncurses-devel libxslt groff pcre-devel pkgconfig

如果你是 CentOS 5 就执行:


rpm --nosignature -i http://repo.varnish-cache.org/redhat/varnish-3.0/el5/noarch/varnish-release/varnish-release-3.0-1.el5.centos.noarch.rpm

如果你是 CentOS 6 就执行:


rpm --nosignature -i http://repo.varnish-cache.org/redhat/varnish-3.0/el6/noarch/varnish-release/varnish-release-3.0-1.el6.noarch.rpm

做好如上措施之后,开始安装好 Varnish:

yum -y install varnish

二、第二步:修改各个配置。

如下第 4 行命令有“1.2.3.4”请把它改为你服务器的 IP:


sed -i 's/.port = "80";/.port = "8080";/g' /etc/varnish/default.vcl
sed -i 's/Listen 80/Listen 8080/g' /etc/httpd/conf/httpd.conf
sed -i 's/<VirtualHost 127.0.0.1:80>/<VirtualHost 127.0.0.1:8080 1.2.3.4:8080>/g' /etc/httpd/conf/extra/httpd-vhosts.conf
mkdir /usr/local/directadmin/data/templates/custom
cp -p /usr/local/directadmin/data/templates/virtual_host2.conf /usr/local/directadmin/data/templates/custom/virtual_host2.conf
cp -p /usr/local/directadmin/data/templates/virtual_host2_sub.conf /usr/local/directadmin/data/templates/custom/virtual_host2_sub.conf
cp -p /usr/local/directadmin/data/templates/redirect_virtual_host.conf /usr/local/directadmin/data/templates/custom/redirect_virtual_host.conf
sed -i 's/<VirtualHost |IP|:|PORT_80| |MULTI_IP|>/<VirtualHost 127.0.0.1:8080 |IP|:8080 |MULTI_IP|>/g' /usr/local/directadmin/data/templates/custom/*
sed -i 's/VARNISH_LISTEN_PORT=6081/VARNISH_LISTEN_PORT=80/g' /etc/sysconfig/varnish

三、第三步:安装 rpaf 获取真实 IP。

Apache 2.2 安装方法:


wget http://www.stderr.net/apache/rpaf/download/mod_rpaf-0.6.tar.gz
tar xzf mod_rpaf-0.6.tar.gz
cd mod_rpaf-0.6
apxs -cia mod_rpaf-2.0.c

Apache 2.4 安装方法:


wget http://www.stderr.net/apache/rpaf/download/mod_rpaf-0.6.tar.gz
tar xzf mod_rpaf-0.6.tar.gz
cd mod_rpaf-0.6
yum -y install git
git clone git://gist.github.com/2716030.git
patch mod_rpaf-2.0.c 2716030/mod_rpaf-2.0.c.patch
apxs -cia mod_rpaf-2.0.c

安装好 rpaf 之后要修改 http 引入的配置:


vi /etc/httpd/conf/extra/httpd-includes.conf

在最底下加入如下代码:


#For the rpaf
<IfModule mod_rpaf-2.0.c>
RPAFenable On
RPAFsethostname On
RPAFproxy_ips 127.0.0.1
RPAFheader X-Forwarded-For
</IfModule>

最后让 DirectAdmin 更新一下配置:


echo "action=rewrite&value=httpd" >> /usr/local/directadmin/data/task.queue

最后步骤:重启 Apache 与 Varnish,并设置开机启动。

service httpd restart
service varnish start
chkconfig varnish on

这 4 个步骤都完毕之后,你可以利用如下方式来对你的主机进行测试:

curl -I 127.0.0.1

然后几秒钟再次 curl,如下图所示:

如果在你第二次 curl 的时候,X-Varnish 的 ID 变成了两个、并且 Age 大于 0 即说明缓存成功。

2 comments

  1. 随心

    这么好的东西又不告诉我,还能不能在一起玩耍了!!!!

    沙发

Leave a Reply