新聞中心
這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
如何理解varnish
這篇文章將為大家詳細(xì)講解有關(guān)如何理解varnish,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。
網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、微信小程序、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了東昌府免費(fèi)建站歡迎大家使用!
varnishi由management(主進(jìn)程)和(child/cache)子進(jìn)程組成 varnishi由management(主進(jìn)程)和(child/cache)子進(jìn)程組成 management的工作: 1、提供命令行接口 2、監(jiān)控和管理子進(jìn)程,初始化varnish 3、將default.vcl編譯為二進(jìn)制生成新的配置文件 child/cache的工作: 1、接收連接請(qǐng)求 2、處理用戶請(qǐng)求 3、清除緩存中的過期對(duì)象 4、記錄日志 5、根據(jù)default.vcl生成緩存策略 VCL: 1、緩存策略配置接口 2、基于"域"的配置 存儲(chǔ)緩存對(duì)象: flie:?jiǎn)蝹€(gè)文件進(jìn)行存儲(chǔ),不支持持久化,會(huì)產(chǎn)生大量磁盤i/o對(duì)性能有一定影響 malloc:內(nèi)存存儲(chǔ),性能較高,代價(jià)更高(內(nèi)存比磁盤貴),長(zhǎng)時(shí)間使用會(huì)產(chǎn)生內(nèi)存碎片 persistent:?jiǎn)蝹€(gè)文件進(jìn)行存儲(chǔ),支持持久化,目前作為測(cè)試使用 varnish安裝:centos7環(huán)境 1、配置epel源 2、yum -y install varnish varnish配置: /etc/varnish/default.vcl #vcl配置文件 /etc/varnish/varnish.params #命令行參數(shù)配置文件 /etc/varnish/secret #連接命令行認(rèn)證文件 varnish管理工具: systemctl start varnish.service #啟動(dòng)varnish varnish默認(rèn)監(jiān)聽*:6081和127.0.0.1:6082,6081提供服務(wù),6082提供管理 varnishadm #交互式命令行管理工具 varnishlog #交互式獲取日志工具 varnishncsa #交互式獲取日志工具(apache格式) varnishstat #顯示狀態(tài) varnishtop #排序 varnish.params詳解: VARNISH_VCL_CONF=/etc/varnish/default.vcl #指定vcl文件位置 VARNISH_LISTEN_PORT=6081 #指定服務(wù)端口,默認(rèn)監(jiān)聽所有地址 VARNISH_ADMIN_LISTEN_ADDRESS=127.0.0.1 #管理ip VARNISH_ADMIN_LISTEN_PORT=6082 #監(jiān)聽端口 VARNISH_SECRET_FILE=/etc/varnish/secret #認(rèn)證文件 VARNISH_STORAGE="file,/var/lib/varnish/varnish_storage.bin,1G" #緩存方式(單個(gè)文件緩存) #VARNISH_STORAGE="malloc,256M" #緩存方式(內(nèi)存緩存),不能同時(shí)啟動(dòng) VARNISH_USER=varnish #程序用戶 VARNISH_GROUP=varnish #程序組 #DAEMON_OPTS="-p thread_pool_min=5 -p thread_pool_max=500 -p thread_pool_timeout=300" #進(jìn)程池配置 varnish狀態(tài)引擎詳解:狀態(tài)引擎用于對(duì)客戶端請(qǐng)求進(jìn)行判斷并作出相應(yīng)處理 vcl_recv:接收用戶請(qǐng)求,判斷如何處理 vcl_pass: 繞過緩存,不從緩存中查詢內(nèi)容,將請(qǐng)求直接傳遞給后端主機(jī) vcl_pipe:無法解析請(qǐng)求類型,直接交給后端處理 vcl_hash:可緩存數(shù)據(jù),通過hash進(jìn)行處理 vcl_hit:緩存命中 vcl_deliver:將緩存數(shù)據(jù)返回給客戶端 vcl_miss:緩存未命中 vcl_fetch:從后端主機(jī)獲取內(nèi)容,通過判斷將內(nèi)容放入緩存或,直接返回給客戶端 vcl_error:如果請(qǐng)求出現(xiàn)錯(cuò)誤,由varnishi構(gòu)建錯(cuò)誤頁返回給客戶端 varnish負(fù)載均衡集群算法: random #隨機(jī) round-robin #輪詢 fallback #備份 hash #固定后端 配置實(shí)例: vcl 4.0; #varnish版本 probe cache { #定義健康檢查函數(shù) .url = "/index.html"; #檢查的url .timeout = 1s; #超時(shí)時(shí)間 .interval = 5s; #重試間隔 .window = 5; #重試次數(shù) .threshold = 3; #重試三次成功則認(rèn)為服務(wù)器在線 } backend www1 { #定義后端主機(jī) .host = "192.168.0.10"; #后端主機(jī) .port = "80"; #監(jiān)聽端口 .probe = cache; #調(diào)用健康檢查函數(shù) } backend www2 { .host = "192.168.0.40"; .port = "80"; .probe = cache; } backend www3 { .host = "192.168.0.70"; .port = "80"; .probe = cache; } import directors; #導(dǎo)入集群模塊 sub vcl_init { new www = directors.round_robin(); #使用輪詢算法 www.add_backend(www1); #集群主機(jī) www.add_backend(www2); #集群主機(jī) www.add_backend(www3); #集群主機(jī) } sub vcl_recv { set req.backend_hint = www.backend(); #將所有流量發(fā)送給www集群 }
關(guān)于如何理解varnish就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。
網(wǎng)站題目:如何理解varnish
地址分享:http://fisionsoft.com.cn/article/pgijei.html