真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

squid如何強(qiáng)制緩存動(dòng)態(tài)頁(yè)面

squid如何強(qiáng)制緩存動(dòng)態(tài)頁(yè)面,很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來(lái)學(xué)習(xí)下,希望你能有所收獲。

10多年專注成都網(wǎng)站制作,成都定制網(wǎng)站,個(gè)人網(wǎng)站制作服務(wù),為大家分享網(wǎng)站制作知識(shí)、方案,網(wǎng)站設(shè)計(jì)流程、步驟,成功服務(wù)上千家企業(yè)。為您提供網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)頁(yè)設(shè)計(jì)及定制高端網(wǎng)站建設(shè)服務(wù),專注于成都定制網(wǎng)站,高端網(wǎng)頁(yè)制作,對(duì)成都集裝箱等多個(gè)領(lǐng)域,擁有豐富的網(wǎng)站營(yíng)銷經(jīng)驗(yàn)。

其實(shí)我本不想寫(xiě)這個(gè)標(biāo)題,我的本意是緩存yupoo api的查詢數(shù)據(jù),這個(gè)過(guò)程中找到了參考方法(Caching Google Earth with Squid)。呵呵,所以偶也來(lái)一回標(biāo)題黨。

這篇參考流傳非常廣,Digg上也被提過(guò),我也不知道原出處是哪里了。

可是。。。。你按照它的指示設(shè)置,它并不能正確工作??!

話說(shuō)回來(lái),先說(shuō)說(shuō)我的需求。

最近yupoo的訪問(wèn)速度很慢,我有一堆a(bǔ)pi請(qǐng)求經(jīng)常無(wú)法完成,猜測(cè)要么對(duì)方限制了同一ip的連接數(shù),要么是yupoo又遇到了新一輪的流量瓶頸。跟Yupoo的zola聯(lián)系后,確認(rèn)是他們的負(fù)荷太高引起的,并沒(méi)有限制連接數(shù)。所以我要想辦法在我這邊做一些緩存了。

因?yàn)槲疫@邊本身就是用squid代理來(lái)解決Ajax中調(diào)用API的跨域問(wèn)題的,所以自然是目標(biāo)瞄準(zhǔn)了squid的配置文件。

yupoo api的請(qǐng)求地址是 www.yupoo.com/api/rest/?method=xx&xxxxxxx...

大家都知道squid會(huì)自動(dòng)緩存靜態(tài)文件,可對(duì)于這種動(dòng)態(tài)網(wǎng)頁(yè)怎么讓它也緩存起來(lái)呢,所以在google上找啊找,找到上面提得那片緩存Google Earth的博客文章。
他的方法是:

acl QUERY urlpath_regex cgi-bin \? intranet
acl forcecache url_regex -i kh.google keyhole.com
no_cache allow forcecache
no_cache deny QUERY

# ----
refresh_pattern -i kh.google 1440 20% 10080 override-expire override-lastmod reload-into-ims ignore-reload

refresh_pattern -i keyhole.com 1440 20% 10080 override-expire override-lastmod reload-into-ims ignore-reload

原理就是用 no_cache allow 和 refresh_pattern 來(lái)設(shè)定一些緩存規(guī)則,將google earth的請(qǐng)求強(qiáng)行緩存起來(lái)。

此文一出,自然早有人去驗(yàn)證,可是沒(méi)人成功,原作者也音訊全無(wú)  ... squid的郵件列表里也提到。 ( 看標(biāo)題進(jìn)來(lái)的朋友,不要急,繼續(xù)往下讀,不會(huì)讓你空手而回的  )

我也沒(méi)在意,估計(jì)人家功力問(wèn)題  。先試著用改寫(xiě)一下解決yupoo api的緩存問(wèn)題。

acl QUERY urlpath_regex cgi-bin \?
acl forcecache url_regex -i yupoo\.com
no_cache allow forcecache
no_cache deny QUERY

refresh_pattern -i yupoo\.com 1440 50% 10080 override-expire override-lastmod reload-into-ims ignore-reload

嘿,果然nnd毫無(wú)用處,訪問(wèn)記錄里還是 一坨坨 TCP_MISS

于是翻來(lái)覆去看文檔,找資料,發(fā)現(xiàn)是squid的bug惹得禍,不過(guò)早已經(jīng)修正(嚴(yán)格來(lái)說(shuō)是功能擴(kuò)展補(bǔ)?。?。

我的squid是2.6.13,翻了一下源代碼,確實(shí)已經(jīng)打好補(bǔ)丁了。

解決這個(gè)問(wèn)題需要refresh_pattern的幾個(gè)擴(kuò)展參數(shù)(ignore-no-cache ignore-private),這幾個(gè)參數(shù)在squid的文檔和配置例子中均沒(méi)有提到,看來(lái)squid還不夠與時(shí)俱進(jìn)。

下面講一下問(wèn)題所在。

先看看yupoo api返回的HTTP頭部信息(cache 相關(guān)部分)

Cache-Control: no-cache, must-revalidate
Pragma: no-cache

這兩行是控制瀏覽器的緩存行為的,指示瀏覽器不得緩存。squid也是遵循RFC的,正常情況下自然不會(huì)去緩存這些頁(yè)面。override-expire override-lastmod reload-into-ims ignore-reload 統(tǒng)統(tǒng)不能對(duì)付它。

而那個(gè)補(bǔ)丁正是對(duì)付這兩個(gè)Cache-Control:no-cache 和 Pragma: no-cache的。

因此把 refresh_pattern那句要改寫(xiě)成

refresh_pattern -i yupoo\.com 1440 50% 10080 override-expire override-lastmod reload-into-ims ignore-reload ignore-no-cache ignore-private

這樣就大功告成了, squid -k reconfigure 看看 access.log ,這回里面終于出現(xiàn)
TCP_HIT/200 TCP_MEM_HIT/200 了,說(shuō)明緩存規(guī)則確實(shí)起作用了,那個(gè)激動(dòng)啊 555~~~~

====================
補(bǔ)充:
后來(lái)我看了一下google earth 服務(wù)器 hk1.google.com的HTTP頭部,只有

Expires: Wed, 02 Jul 2008 20:56:20 GMT
Last-Modified: Fri, 17 Dec 2004 04:58:08 GMT

,這么看來(lái)照理不需ignore-no-cache ignore-private也能工作,可能是作者這里寫(xiě)錯(cuò)了
kh.google 應(yīng)該是 kh.\.google才對(duì)。

最后總結(jié)一下,緩存Google Earth/Map的正確的配置應(yīng)該是

acl QUERY urlpath_regex cgi-bin \? intranet
acl forcecache url_regex -i kh.\.google mt.\.google mapgoogle\.mapabc keyhole.com
no_cache allow forcecache
no_cache deny QUERY

# ----
refresh_pattern -i kh.\.google 1440 20% 10080 override-expire override-lastmod reload-into-ims ignore-reload ignore-no-cache ignore-private
refresh_pattern -i mt.\.google 1440 20% 10080 override-expire override-lastmod reload-into-ims ignore-reload ignore-no-cache ignore-private
refresh_pattern -i mapgoogle\.mapabc 1440 20% 10080 override-expire override-lastmod reload-into-ims ignore-reload ignore-no-cache ignore-private

refresh_pattern -i keyhole.com 1440 20% 10080 override-expire override-lastmod reload-into-ims ignore-reload ignore-no-cache ignore-private

注:
khX.google.com 是google earth的圖片服務(wù)器
mtX.google.com 是google map 的圖片服務(wù)器
mapgoogle.mapabc.com 是google ditu的圖片服務(wù)器
http://nukq.malmam.com/archives/16

看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對(duì)創(chuàng)新互聯(lián)的支持。


本文名稱:squid如何強(qiáng)制緩存動(dòng)態(tài)頁(yè)面
瀏覽地址:http://weahome.cn/article/pogcej.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部