用varnish做緩存服務器
通過配置Varnish緩存服務器,實現如下目標:
使用Varnish加速後端Apache Web服務
使用varnishadm命令管理緩存頁面
使用varnishstat命令查看Varnish狀態
二、方案,
服務器規劃見我的另外一篇筆記:squid反向代理,通過源碼編譯安裝Varnish緩存服務器
三、實施:主要是部署varnish緩存服務器
1、安裝軟件依賴包
yum -y install gcc readline-devel pcre-devel
2、創建程序的啟動賬戶:useradd -s /sbin/nologin varnish
3、編譯安裝軟件
tar -xf varnish-3.0.6.tar.gz //解壓源碼包
cd varnish-3.0.6/ //進入到解壓的目錄
./configure --prefix=/varnish //配置,指定安裝路徑為/varnish
make && make install //編譯安裝
4、復制啟動腳本及配置文件
cp redhat/varnish.initrc /etc/init.d/varnish
cp redhat/varnish.sysconfig /etc/sysconfig/varnish
cp redhat/varnish_reload_vcl /usr/bin/
ln -s /usr/local/varnish/sbin/varnishd /usr/sbin/
ln -s /usr/local/varnish/bin/* /usr/bin
mkdir /etc/varnish
cp /usr/local/varnish/etc/varnish/default.vcl /etc/varnish/
uuidgen > /etc/varnish/secret
5、修改Varnish文件
vim /etc/sysconfig/varnish
66行:VARNISH_LISTEN_PORT=80 //修改默認端口
89行:VARNISH_STORAGE_SIZE=64M //定義緩存大小,因為這裏是基於內存的緩存代理,依據自身服務器的
92行:VARNISH_STORAGE="malloc,${VARNISH_STORAGE_SIZE}" //定義基於內存方式緩存
6、修改代理配置文件
vim /etc/varnish/default.vcl
backend default {
.host = "192.168.2.103";
.port = "80";
}
7、啟動服務
service varnish start 註:varnish啟動腳本文件有問題,在rhel6上沒問題
在rhel7上有問題,當出現 Reloading systemd: [ OK ] 時,可以ctrl+c結束掉
8、測試,在客戶機上測試
curl http://192.168.4.102
9、其它
varnishlog //varnish日誌
varnishncsa //訪問日誌
10、當網站更新文件後,由於在內存中的文件還在,故去訪問時還是以前舊的文件,
要麽等待一段時間,要麽在代理服務器上手動刷新
varnishadm -S /etc/varnish/secret -T 127.0.0.1:6082 //進入後臺管理緩存頁面
storage.list //查看存儲信息
ban.url .* // 清內存
varnishadm ban.url '.*' //非交互式清理.*代表所有的緩存頁面
用varnish做緩存服務器