日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

利用python获取指定url在ATS中缓存对象的信息

發(fā)布時(shí)間:2023/11/27 生活经验 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 利用python获取指定url在ATS中缓存对象的信息 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

業(yè)務(wù)需求

給定url,如何查詢指定的ATS中是否有該url的緩存對(duì)象信息?如果緩存了的話,希望提供該緩存對(duì)象的大小,緩存時(shí)間,緩存文件名,緩存份數(shù)(document alternative)等等信息

環(huán)境搭建

1.開啟ATS的http_ui查詢緩存功能

從ATS 3.0.4之后,我們就發(fā)現(xiàn)records.config中已經(jīng)沒有和http_ui相關(guān)的配置選項(xiàng),但是在/mgmt/RecordsConfig.cc文件中有相關(guān)的配置信息,比如下面的ATS 5.3.0版本中的截圖


為此,配置如下:

在records.config尾部添加

CONFIG proxy.config.http_ui_enabled INT 3
CONFIG proxy.config.http.enable_http_info INT 1
?
http_ui_enabled值如下:
0 - Don't enable anything in the stats pages system (default)
1 - Enable only the cache inspector
2 - Enable only the various stats pages (see more below)
3 - Enable both cache inspector and stats pages
如果TS運(yùn)行在192.168.0.102,那么在remap.conf中添加如下內(nèi)容:
map http://192.168.0.102:8080/cache-internal/ http://{cache-internal}
map http://192.168.0.102:8080/cache/ http://{cache}
map http://192.168.0.102:8080/stat/ http://{stat}
map http://192.168.0.102:8080/test/ http://{test}
map http://192.168.0.102:8080/hostdb/ http://{hostdb}
map http://192.168.0.102:8080/net/ http://{net}
map http://192.168.0.102:8080/http/ http://{http}
此時(shí)可以通過訪問http://192.168.0.102:8080/cache/查看cache的內(nèi)容。為了安全起見,可以對(duì)map使用ACL控制,如下:
map http://192.168.0.102:8080/cache/ http://{cache}/ @src_ip=192.168.0.102 @action=allow
上面的配置,顯然只允許運(yùn)行在192.168.0.102上的ATS的本機(jī)用戶通過8080才能訪問cache頁面.這樣配置的原因是,只希望從程序中查詢ATS緩存,而不是從瀏覽器中,因?yàn)闉g覽器一般默認(rèn)訪問80端口,當(dāng)然你可以配置正向代理到ATS,或者訪問鏈接時(shí)添加8080端口。

配置完成后,重啟ATS。

trafficserver restart

2.從命令行訪問來驗(yàn)證緩存查詢功能

首先需要讓ATS緩存上一個(gè)url資源,比如帝聯(lián)的首頁

然后通過命令行來查詢?cè)搖rl是否已經(jīng)被ATS緩存?

查詢緩存的url形式如下:

http://192.168.0.102:8080/cache/lookup_url?url=http://www.dnion.com/

使用wget命令如下:

wget -S "http:/192.168.0.102:8080/cache/lookup_url?url=http://www.dnion.com/" -S選項(xiàng)表示只打印響應(yīng)頭,默認(rèn)不發(fā)送,這里特此開啟它


在瀏覽器中查看保存到本地目錄/tmp/dnion.html的內(nèi)容

很顯然, 我們看到了指定url在ATS中的緩存信息: 緩存的大小是Size參數(shù), 有一個(gè)對(duì)象副本aliternate, 緩存的時(shí)間從Date字段判斷, 沒有Date的話, 參考Expires字段.

下面的問題是如何從程序中自動(dòng)獲取這些信息?這就是本文的目的所在.

解決方法

python實(shí)現(xiàn)的思路是:

獲取指定url查詢到的ATS緩存頁面信息,利用正則匹配找到該html頁面中的指定字段Date和Size處的值,得到緩存的時(shí)間和大小。

如果緩存中沒有查詢到,我們需要做異常處理,也就是這時(shí)獲取的緩存時(shí)間和大小都是0。

下面是我對(duì)一個(gè)沒有緩存的url,太平洋網(wǎng)站主頁的測試,發(fā)現(xiàn)ATS正常返回的html頁面信息如下


實(shí)現(xiàn)源碼這里暫不透露,只給出測試的運(yùn)行截圖

該python能正確識(shí)別正常的緩存頁面和異常的緩存頁面,給出緩存對(duì)象的大小和緩存時(shí)間.這里就可以達(dá)到我們的業(yè)務(wù)要求了

參見文獻(xiàn)

[1].https://blog.zymlinux.net/index.php/archives/756?紙鳶博文

[2].https://cwiki.apache.org/confluence/display/TS/FAQ

總結(jié)

以上是生活随笔為你收集整理的利用python获取指定url在ATS中缓存对象的信息的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。