1. 程式人生 > >用varnish做緩存服務器

用varnish做緩存服務器

問題 還在 目標 交互式 sysconf ret /usr font ack

一、目的

通過配置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做緩存服務器