varnish服務器

Vainish是一款高性能且開源的反向代理服務器和http加速器。

與傳統的squid相比,Varnish具有性能更高、速度更快等諸多優點。


Varnish服務器

--/etc/varnish      #配置文件目錄

 /etc/init.d/varnish   #varnish的啓動程序

 /etc/sysconfig/varnish #配置文件,varnish定義自身屬性

 /etc/varnish/default.vcl #默認配置文件,定義後端節點

--/usr/bin/varnishadm    #客戶端程序

--/usr/bin/varnishstat    #狀態監控


使用Varnish加速Web
通過配置Varnish緩存服務器,實現如下目標:
1,使用Varnish加速後端Apache Web服務
2,使用varnishadm命令管理緩存頁面
3,使用varnishstat命令查看Varnish狀態
方案
1,通過源碼編譯安裝Varnish緩存服務器
2,編譯安裝Varnish軟件
3,複製啓動腳本與配置文件

使用3臺RHEL7虛擬機,其中一臺作爲varnish服務器,
  該服務器用來連接兩個網段,因此需要配置兩塊網卡,
  地址分別爲192.168.4.5和192.168.2.5
  一臺作爲客戶端測試主機,IP地址爲192.168.4.100。
  一臺Web服務器,地址爲192.168.2.100,
  該Web服務器爲其他代理提供Web數據源。

步驟
步驟一:構建Web服務器
1)使用yum安裝web軟件包
[root@web1 ~]# yum -y install httpd
2)啓用httpd服務,並設爲開機自動運行
[root@web1 ~]# systemctl start httpd
[root@web1 ~]# systemctl enable httpd
3)爲Web訪問建立測試文件
[root@web1 ~]#echo "i am 192.168.2.100"
步驟二:部署Varnish緩存服務器
1)編譯安裝軟件
[root@svr5 ~]#yum -y install gcc readline-devel pcre-devel    //安裝軟件依賴包
[root@svr5 ~]# useradd -s /sbin/nologin varnish               //創建賬戶
[root@svr5 ~]# tar -xzf varnish-3.0.6.tar.gz
[root@svr5 ~]# cd varnish-3.0.6
[root@svr5 varnish-3.0.6]# ./configure --prefix=/usr/local/varnish
[root@svr5 varnish-3.0.6]# make && make install
2)複製啓動腳本及配置文件
[root@svr5 varnish-3.0.6]#cd redhat/
[root@svr5 redhat]# cp redhat/varnish.initrc /etc/init.d/varnish
[root@svr5 redhat]# cp redhat/varnish.sysconfig /etc/sysconfig/varnish
[root@svr5 redhat]# ln -s /usr/local/varnish/sbin/varnishd /usr/sbin/
[root@svr5 redhat]# ln -s /usr/local/varnish/bin/* /usr/bin/
3)修改Varnish文件
[root@svr5 ~]# vim /etc/sysconfig/varnish
66行:VARNISH_LISTEN_PORT=80                              #默認端口
89行:VARNISH_STORAGE_SIZE=64M                            #定義緩存大小
92行:VARNISH_STORAGE="malloc,${VARNISH_STORAGE_SIZE}"   #基於內存方式緩存
4)修改代理配置文件
[root@svr5 ~]# mkdir /etc/varnish
[root@svr5 ~]# cp /usr/local/varnish/etc/varnish/default.vcl /etc/varnish/
[root@svr5 ~]# uuidgen > /etc/varnish/secret
[root@svr5 ~]# vim  /etc/varnish/default.vcl
backend default {
     .host = "192.168.2.100";
     .port = "80";
 }
[root@svr5 ~]# service  varnish  start
步驟三:客戶端測試
[root@client ~]# curl http://192.168.4.5

其他操作
1)查看varnish日誌
[root@svr5 ~]# varnishlog             //varnish日誌
[root@svr5 ~]# varnishncsa            //訪問日誌,實時日誌,在客戶端訪問才能看到日誌
2)更新緩存數據,在後臺web服務器更新頁面內容後,
   用戶訪問代理服務器看到的還是之前的數據,
   說明緩存中的數據過期了需要更新(默認也會自動更新,但非實時更新)。
[root@svr5 ~]# varnishadm –S /etc/varnish/secret –T 127.0.0.1:6082 ban.url 頁面文件名
#清空緩存數據,支持正則表達式(非交互)
[root@svr5 ~]#varnishadm stop #停止服務
[root@svr5 ~]#varnishadm start #啓動服務
[root@svr5 ~]#varnishadm status #查看狀態
[root@svr5 ~]#varnishadm ban.url / #清空緩存

緩存過期:
1)等待更新
2)手動更新(在/etc/sysconfig/varnish查看端口以及安全文件)(交互)
varnishadm –S /etc/varnish/secret –T 127.0.0.1:6082 #進入
backend.list #查看後端的信息
ban.url .* #所有更新


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章