varnish主要功能是代理服務器和緩存,和nginx代理一樣可以反向代理web服務器。但是varnish不能作為web服務器。但是它的優點是可以將訪問過的網站還存在代理服務器上,以便於提升web的訪問速度,提高用戶的體驗。
一、准備web服務器
以apache為例,直接安裝httpd,啟動http服務,添加一個網頁內容,此次web網站的內容就是web服務器的地址192.168.4.128.具體apache的安裝和部署就不介紹了。varnish服務器的地址:192.168.0.201
二、安裝varnish
2.1、安裝依賴包
1 [root@proxy ~]# yum -y install gcc readline-devel //安裝軟件依賴包
2 [root@proxy ~]# yum -y install ncurses-devel //安裝軟件依賴包
3 [root@proxy ~]# yum -y install pcre-devel //安裝軟件依賴包
4 [root@proxy ~]# yum -y install python-docutils //安裝軟件依賴包
5 [root@proxy ~]# useradd -s /sbin/nologin varnish //創建賬戶
6 [root@proxy ~]# tar -xf varnish-6.3.1.tar.gz 7 [root@proxy ~]# cd varnish-6.3.1
8 [root@proxy varnish-6.3.1]# ./configure 9 [root@proxy varnish-6.3.1]# make && make install
2.2、復制啟動腳本及配置文件
varnish的配置文件在源碼包解壓后的目錄中:/usr/local/src/varnish-6.3.1/etc/example.vcl,我們將這個配置文件拷貝到任意目錄下,此例放於/usr/local/varnish/default.vcl.這里改名為default.vcl
1 [root@proxy varnish-6.3.1]# cp etc/example.vcl /usr/local/varnish/default.vcl
2.3、修改代理配置文件
[root@proxy ~]# vim /usr/local/varnish/default.vcl backend default { .host = "192.168.4.128"; .port = "80"; }
2.4、啟動服務
1 [root@proxy ~]# varnishd -f /usr/local/etc/default.vcl 2 //varnishd命令的其他選項說明如下: 3 //varnishd -s malloc,128M 定義varnish使用內存作為緩存,空間為128M 4 //varnishd -s file,/var/lib/varnish_storage.bin,1G 定義varnish使用文件作為緩存
三、客戶端測試
3.1、客戶端開啟瀏覽器訪問
四、其他操作
4.1、查看varnish日志
1 [root@proxy ~]# varnishlog //varnish日志
2 [root@proxy ~]# varnishncsa //訪問日志
4.2、更新緩存數據,在后台web服務器更新頁面內容后,用戶訪問代理服務器看到的還是之前的數據,說明緩存中的數據過期了需要更新(默認也會自動更新,但非實時更新)。
1 [root@proxy ~]# varnishadm 2 varnish> ban req.url ~ .*
3 //清空緩存數據,支持正則表達式