vanish

varnish 包安裝yum? ? ?install? ? ? varnish? ?

varnish? 網(wǎng)址:www.varnish-cache.org

命中率:? ? warm? ?up? ? 緩存熱身,,

緩存的有效性判斷機(jī)制:過期時長:Expires? 絕對時長。。? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?cache-control:maxage=? ? ? ? 最大時間相對時長,,,

cache-control:s-maxage=? ? ? 控制公共緩存的可緩存時長。。

varnish緩存文檔。



條件試請求:last-modified/if-modified-since:? ?基于文件秀發(fā)i時間戳

/etc/varnish/default.vcl? ? ? ?緩存策略 配置文件? ? ? ? ? ?child/cache? ? 線程

/etc/varnish/varnish.params? ? 配置進(jìn)程監(jiān)聽地址端口,用內(nèi)存還是磁盤緩存。進(jìn)程自己的工作特性配置文件

/etc/varnish/secret? ? ? ? ?交互式登入文件? ? ? ? ? ? ?varnishadm m -S /etc/varnish/secret? -T 127.0.0.1:6081

/usr/lib/systemd/system/varnishlog.service? ? ? ?持久化記錄日志。。

shared? memory? ?log? ?交互工具:? ? ? /usr/bin/varnishhist? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /usr/bin/varnishlog? ? ? ? ? ? ? ? ? ? ? ? ?/usr/bin/varnishncsa

/usr/bin/varnishstat? ? ? ? ? ? ? ? ? ? /usr/bin/varnishtop

測試工具程序:/usr/bin/varnishtest


vanish的緩存機(jī)制:

/etc/varnish/varnish.params? ?進(jìn)程自己的工作特性配置文件。

RELOAD_VCL=1? ? ?啟動會不會重新裝載vcl文件。1 會的

VARNISH_VCL_CONF=/etc/varnish/default.vcl? ? ?默認(rèn)加載的緩存文件。。

VARNISH_LISTEN_PORT=6081? 監(jiān)聽的端口。。

VARNISH_ADDMIN_LISTEN_ADDRESS=127.0.0.1? ? ? ? 遠(yuǎn)程連接的地址。

VARNISH_ADMIN_LISTEN_PORT=6082? ? ? 遠(yuǎn)程連接的端口

VARNISH_STORAGE="malloc,256M"? ? ? ?varnish存儲目錄? ?malloc用于定義內(nèi)存存儲,重啟緩存失效,

file [.path[size[granularity]]? 磁盤文件存儲黑盒重啟失效,VARNISH_STORAGE=“/data/cache,1g"

daemon_opts="-p? thread_pool_min=5 (線程池最小空閑數(shù))-p thread_pool_ma=500 ( 最大進(jìn)程數(shù)) -p? thread_pool_timeout=300? (線程池超時時長)? ?-p設(shè)置參數(shù)和值可重復(fù)使用。? ? ?-r:設(shè)定參數(shù)為只讀狀態(tài)。


/etc/varnish/secret? 遠(yuǎn)程連接安全文件

varnishadm? ?-S? /etc/varnish/secret? ?-T? 127.0.0.1:6082? ?連接進(jìn)入交互式接口。

vcl.list? ? 列出vcl文件。。? ? ? ? ? ? param.show thread_pools? 查線程池

vcl.load? ?test2? ?default.vcl? ? 裝在test2 文件加載vcl規(guī)則。? ? ?vcl.list:查看vcl規(guī)則。。

vcl.use? test2? ? ? 使用test2? ?規(guī)則。? ? ? ? ? ? ?vcl.discard? ? test2? 刪除test2 規(guī)則。。? ?

param.show? 查看運行時參數(shù)。? ? ? ?storage.list? ? ?列出存儲。


vcl有多個狀態(tài)引擎。每個狀態(tài)引擎對應(yīng)vcl一個配置段,

兩個特殊引擎:vcl_init:? 在任何請求前,要執(zhí)行的vcl代碼,主要用于被初始化vmods。

vcl_fini:所有的請求都已被結(jié)束,在vcl配置丟棄時調(diào)用,用于清理vmods。

狀態(tài)引擎都有:

vcl_recv? ?收到請求 ,,? ? ? ? ?vcl_pass:不能查緩存的? ? ? ? ? ? ?vcl_hash: 可以查緩存的

vcl_hit:命中的? ? ? ? ? ? ? ? ? ? ? ? ?vcl_miss:沒命中的? ? ? ? ? ? ? ? ? ? ? ? ? ?vcl_page:? ?理解不了的是不是web請求的

vcl_purge: 人工清理。? ? ? ? ? ? ? ? ? ? vcl_synth:緩存修剪。? ? ? ? ? ? ? ? ? ? ? ? vcl_deliver:向客戶端發(fā)送相應(yīng)報文。。



操作符:

變量賦值:變量賦值 =? ? ? ? ? ? ? ? ? ?~模式匹配,? ? ? ? ? ? ? ? ? ? ==等值比較,? ? ? ? ? ? ,? ?!=? 不等值。。? 邏輯運算:&&? ? ?||? ? ?!=? ? ? ? ? ??

obj.*? ? ? ? ? ? ? ? ? obj.hits:此對象從緩存中命中的次數(shù),大于1從緩存中命中的,,0從后端得到的。。

顯示從緩存命中的


變量類型:內(nèi)建變量。

req.*? 表示由客戶端發(fā)來的請求。? ? req.http.*? ? 應(yīng)用客戶端的首部。。。

req.http.user-Agent? ?直接引用指定報文首部信息


bereq.*? :由varnish發(fā)來給be主機(jī)的請求? ? ? bereq.http.*

beresp.* :由be主機(jī)響應(yīng)給varnish相應(yīng)報文,,,? ?beresp.http.*??

resp.*:由varnish響應(yīng)給客戶端的響應(yīng)報文。


常用變量:bereq.*? ? ? ? ?req.*? ? ? ?請求類

bereq.http.HEADERS :頭文件。? ? ? ? ? ? ? ? ? ? ?bereq.requrl:請求url? ? ? ? ? ? ? ? ? ? berq.request:請求方法。

bereq.proto:請求協(xié)議。? ? ? ? ? ? ? ? ? ? bereq.backend :指明要調(diào)用的后端主機(jī)。

req.http.cookie:客戶端請求報文中cookie首部值。。


bereq.*? ? resp.*? ? 相應(yīng)報文。。

beresp.http.HEADERS :相應(yīng)頭部報文。。? ? ? ? ? ? ? ? ? ? ?beresq.status:相應(yīng)的狀態(tài)碼。

beresp.proto:? 協(xié)議版本? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?beresp.backend.name:be主機(jī)的主機(jī)名。。

beresp.ttl:be主機(jī)相應(yīng)的內(nèi)容的余是可緩存時長。。

obj.*? ? ? ?obj.ttl: 對象的ttl值,緩存時常。。


限定請求方法不讓查緩存,與限定客戶端請求方法,返回值。。




定義后端服務(wù)器收到請求IP。。


用于保存某緩存項從緩存命中的次數(shù)。。


s-maxage:控制公共緩存的可緩存時長。? ? ? ? ? ?!~不匹配。??

unset? ? ?bereqsp.http.set-cookie;? ?設(shè)置cookie值取消。

set? beresp.ttl=3600s;? ?設(shè)置緩存3600s

s-

ban禁用清除匹配項密令:

ban? req.url? ~/foo? ? ? ?url以foo開頭的禁用,(禁用匹配的緩存項).? ? ? ? ? ? ?在交互式模式下執(zhí)行。

ban? req.http.host? ~? ?example.com? ?&&? obj.http.content-type? ~test

ban? req.url? ~.js$? ? ?禁用以.js結(jié)尾的內(nèi)容。

ban? req.url? ? ~? ?^/javascripts

ban配置文件定義:


varnish如何在代理時使用多個后端主機(jī):

在配置vcl配置文件/etc/varnish/default.vcl 中定義? ?import directors; 導(dǎo)入初始化模塊


定義組:

調(diào)用組:



示例:不同的配置到不同的服務(wù)器組;




健康狀態(tài)檢測:




varnish經(jīng)常調(diào)用的參數(shù)在/etc/varnish/varnish.params? ?最后一行配置



thread_pool_max? ?每線程池最大線程數(shù)

thread_pool_min? ? ? ? 最大空閑連接數(shù)

thread_queue_limit? ?線程池后援隊列長度

thread_pool_timeout? ? ? ?空閑線程池超時時長

thread_pool_fail_deay? ? ? 創(chuàng)建線程池失敗隔多久在重建。

thread_pool_destroy_delay? ? 殺死線程池需要延期嗎


time相關(guān)參數(shù):

timeout_idle? ? 8 s? :? ? ? ? ? ? ? 保持超時時長

send_timeout 300s? ? ? ? 發(fā)送客戶段超時時長、。

timeout_req? 5s? ? ? ? ? ? 請求報文時間

cli_timeout? ?40s? ? ? ? ? ?用varnishadmin? 發(fā)出命令?management相應(yīng)超時時長。

在交互式模式下用:param.show? ? cli_timeout? ? ? 查看參數(shù)狀態(tài)值。


#varnishstat? ? ? ? 查看統(tǒng)計數(shù)據(jù)

varnishstat? -1? ?只查看一次統(tǒng)計數(shù)據(jù)。? ? ? varnishstat? -1? ?-f? ?filed_name:制定只顯示哪個字段。

varnishstat? -l :可用于-f指定名稱和列表

#varnishlog? ? ?查實時日志


varnishtop? -1:varnish日志區(qū)域的條目排序。統(tǒng)計據(jù)逆序排序。

varnishtop -i? ?Respstatus:? ? 過濾單獨標(biāo)簽? ?-i:指定標(biāo)簽

varnishtop -I? ^resp:? ? 過濾以resp開頭

varnishtop? ?-X? BereqHeadr,BerespHeader :過濾這倆不顯示排除列表。。。

#varnishncsa? ? ? 以ncsa? 格式記錄日志。。。


systemctl? ? start? ?varnishncsa:? ?啟動varnish日志記錄。。

tail? /var/log/varnish/varnishncsa.log? ? 查看日志

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容