成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Apache 簡(jiǎn)單頁(yè)面緩存

laznrbfe / 3542人閱讀

摘要:因?yàn)閱栴}主要出在頁(yè)面中內(nèi)容的查詢上,優(yōu)化方法自然是要減少或杜絕查詢,在不動(dòng)網(wǎng)站系統(tǒng)代碼的前提下,可通過的來(lái)達(dá)到目的。

維護(hù)一套網(wǎng)站系統(tǒng),因?yàn)闀r(shí)間久遠(yuǎn),已不知道他的靜態(tài)化系統(tǒng)要如何開啟和如何運(yùn)作,而首頁(yè)及部分頻道頁(yè)因?yàn)椴樵兲?,?dǎo)致運(yùn)行緩慢,急需一種簡(jiǎn)單有效的方法來(lái)提高訪問效率。

因?yàn)閱栴}主要出在頁(yè)面中內(nèi)容的查詢上,優(yōu)化方法自然是要減少或杜絕查詢,在不動(dòng)網(wǎng)站系統(tǒng)代碼的前提下,可通過 Apache 的 URLRewrite 來(lái)達(dá)到目的。

建立一個(gè)目錄(如 cache)來(lái)存放靜態(tài)化后頁(yè)面文件,在網(wǎng)站根目錄的 .htaccess 中寫入規(guī)則, 沒有就創(chuàng)建一個(gè):

RewriteCond %{DOCUMENT_ROOT}/cache/%{REQUEST_URI}.cache -f
RewriteRule ^(.*)$ cache/$1.cache [L]

此規(guī)則判斷 cache 目錄下是否存在當(dāng)前 URI 對(duì)應(yīng)的 .cache 后綴的文件, 如果有則將請(qǐng)求定向到該文件. 但是網(wǎng)站頁(yè)面本身已采用了 URLRewrite 將 url 映射到了程序腳本上, 而其路徑規(guī)則可能對(duì)尾部的 "/" 不敏感, 如 /abc/def 與 /abc/def/ 可以是同一個(gè)頁(yè)面, RewriteCond 并不支持字符串截取、正則替換等操作, 故另添加以下規(guī)則來(lái)匹配 "/" 結(jié)尾的緩存:

RewriteCond %{DOCUMENT_ROOT}/cache/%{REQUEST_URI}/.cache -f
RewriteRule ^(.*)$ cache/$1/.cache [L]

現(xiàn)在, 我們還需要一個(gè)簡(jiǎn)單腳本來(lái)將頁(yè)面輸出存入緩存文件中, 可編寫一個(gè) bash 腳本來(lái)實(shí)現(xiàn):

#!/bin/bash

WD=$(cd `dirname $0`; pwd)

cache ()
{
    ln="$1"
    fn="$WD/$1.cache"
    tn="$WD/$1.cachx"
    dn=`dirname $fn`

    rm    -f "$fn"
    rm    -f "$tn"
    mkdir -p "$dn"
    wget  -O "$tn" "http://www.xxx.com/$ln"
    mv "$tn" "$fn"
}

if [ "@" != "$1" ]
then
    cache   "$1"
else
    cache ""
    cache xxx/
    cache xxx/xxx
fi

可見腳本中 wget 將輸出存入了臨時(shí)文件后更名為目標(biāo)文件, 這是因?yàn)?wget 在執(zhí)行開始時(shí)就會(huì)打開文件, 此時(shí)請(qǐng)求開始, apache 因文件存在而重定向, 最后拿到的文件就成空的了. 為減少網(wǎng)絡(luò)請(qǐng)求時(shí)間, 可在 /etc/hosts 中加入 127.0.0.1 www.xxx.com

此腳本使用方法為:

./cache.sh          # 緩存首頁(yè)
./cache.sh xxx/     # 緩存 xxx 頻道頁(yè)(網(wǎng)站內(nèi)鏈接可能用 / 結(jié)尾)
./cache.sh xxx/xxx  # 緩存 xxx 文章頁(yè)(網(wǎng)站內(nèi)鏈接不會(huì)用 / 結(jié)尾)
./cache.sh @        # 緩存所有經(jīng)常訪問的頁(yè)面(腳本 else 部分)

可以把經(jīng)常訪問的頁(yè)面加入腳本 else 部分, 將此腳本設(shè)為計(jì)劃任務(wù), 每隔一段時(shí)間刷新緩存一次, 能有效減少請(qǐng)求對(duì)數(shù)據(jù)庫(kù)的查詢次數(shù).

但這還不夠, 編輯可能需要在發(fā)布文章后立即更新緩存, 以便查看首頁(yè)、頻道頁(yè)等位置的新聞、推薦等是否正確. 可采用以下 PHP 腳本來(lái)執(zhí)行(如果網(wǎng)站系統(tǒng)是 PHP 編寫):


";
system(__DIR__."/cache.sh "".$uri."" 2>&1");
echo "
";

只需在需要刷新緩存時(shí)請(qǐng)求 /cache/cache.php 即可, 可通過 n 參數(shù)來(lái)指定僅刷新哪個(gè)頁(yè)面. 為防止惡意利用此腳本執(zhí)行危險(xiǎn)命令(如: abc"; rm -rf "xxx), 以上判斷了僅能刷新指定的頁(yè)面; 當(dāng)然文件改名或加上密碼等措施可能更可靠些.

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/35760.html

相關(guān)文章

  • Apache 簡(jiǎn)單頁(yè)面緩存

    摘要:因?yàn)閱栴}主要出在頁(yè)面中內(nèi)容的查詢上,優(yōu)化方法自然是要減少或杜絕查詢,在不動(dòng)網(wǎng)站系統(tǒng)代碼的前提下,可通過的來(lái)達(dá)到目的。 維護(hù)一套網(wǎng)站系統(tǒng),因?yàn)闀r(shí)間久遠(yuǎn),已不知道他的靜態(tài)化系統(tǒng)要如何開啟和如何運(yùn)作,而首頁(yè)及部分頻道頁(yè)因?yàn)椴樵兲?,?dǎo)致運(yùn)行緩慢,急需一種簡(jiǎn)單有效的方法來(lái)提高訪問效率。 因?yàn)閱栴}主要出在頁(yè)面中內(nèi)容的查詢上,優(yōu)化方法自然是要減少或杜絕查詢,在不動(dòng)網(wǎng)站系統(tǒng)代碼的前提下,可通過 Ap...

    GitChat 評(píng)論0 收藏0
  • Apache 簡(jiǎn)單頁(yè)面緩存

    摘要:因?yàn)閱栴}主要出在頁(yè)面中內(nèi)容的查詢上,優(yōu)化方法自然是要減少或杜絕查詢,在不動(dòng)網(wǎng)站系統(tǒng)代碼的前提下,可通過的來(lái)達(dá)到目的。 維護(hù)一套網(wǎng)站系統(tǒng),因?yàn)闀r(shí)間久遠(yuǎn),已不知道他的靜態(tài)化系統(tǒng)要如何開啟和如何運(yùn)作,而首頁(yè)及部分頻道頁(yè)因?yàn)椴樵兲?,?dǎo)致運(yùn)行緩慢,急需一種簡(jiǎn)單有效的方法來(lái)提高訪問效率。 因?yàn)閱栴}主要出在頁(yè)面中內(nèi)容的查詢上,優(yōu)化方法自然是要減少或杜絕查詢,在不動(dòng)網(wǎng)站系統(tǒng)代碼的前提下,可通過 Ap...

    jhhfft 評(píng)論0 收藏0
  • Apache 與 Nginx 性能對(duì)比:Web 服務(wù)器優(yōu)化技術(shù)

    摘要:服務(wù)器市場(chǎng)份額。子進(jìn)程負(fù)責(zé)創(chuàng)建由指令設(shè)置的服務(wù)器線程,同時(shí)還負(fù)責(zé)監(jiān)聽接收到的請(qǐng)求,并將請(qǐng)求分發(fā)給處理線程。在版本引入了模塊,這個(gè)模塊基于模塊創(chuàng)建的,并加入了獨(dú)立的監(jiān)聽線程來(lái)管理請(qǐng)求處理完成后的休眠的連接。基于事件的服務(wù)器完勝。 譯文首發(fā)于 Apache 與 Nginx 性能對(duì)比:Web 服務(wù)器優(yōu)化技術(shù),轉(zhuǎn)載請(qǐng)注明出處。 多年前 Apache 基金會(huì) Web 服務(wù)器 簡(jiǎn)稱「Apache」...

    shadowbook 評(píng)論0 收藏0
  • Apache 與 Nginx 性能對(duì)比:Web 服務(wù)器優(yōu)化技術(shù)

    摘要:服務(wù)器市場(chǎng)份額。子進(jìn)程負(fù)責(zé)創(chuàng)建由指令設(shè)置的服務(wù)器線程,同時(shí)還負(fù)責(zé)監(jiān)聽接收到的請(qǐng)求,并將請(qǐng)求分發(fā)給處理線程。在版本引入了模塊,這個(gè)模塊基于模塊創(chuàng)建的,并加入了獨(dú)立的監(jiān)聽線程來(lái)管理請(qǐng)求處理完成后的休眠的連接?;谑录姆?wù)器完勝。 譯文首發(fā)于 Apache 與 Nginx 性能對(duì)比:Web 服務(wù)器優(yōu)化技術(shù),轉(zhuǎn)載請(qǐng)注明出處。 多年前 Apache 基金會(huì) Web 服務(wù)器 簡(jiǎn)稱「Apache」...

    wangbjun 評(píng)論0 收藏0
  • 堡塔網(wǎng)站加速插件:為網(wǎng)站加速的插件「wordpress效果測(cè)評(píng)」

    摘要:堡塔網(wǎng)站加速是寶塔面板為用戶開發(fā)的一款網(wǎng)站加速插件網(wǎng)站加速插件,基于頁(yè)面緩存的網(wǎng)站加速插件,支持常見的眾多建站程序加速。那么有了堡塔網(wǎng)站加速之后,我們可以使用更多的加速方式,提升網(wǎng)站打開速度。實(shí)測(cè)加速性能遠(yuǎn)強(qiáng)于,以下加速效果來(lái)自環(huán)境。堡塔網(wǎng)站加速是寶塔面板為用戶開發(fā)的一款網(wǎng)站加速插件,基于頁(yè)面緩存的網(wǎng)站加速插件,支持常見的眾多建站程序加速。其原理是在http協(xié)議層緩存動(dòng)態(tài)頁(yè)面,對(duì)實(shí)時(shí)信息及已...

    番茄西紅柿 評(píng)論0 收藏2637

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<