dynamic_cacheプラグインの存在はずいぶん前から知っていたのですが,導入が面倒くさそうだし,それほど導入を急ぐプラグインでもないと思って見送っていました.しかし最近ありがたいことにアクセスが増えており,XREAサーバの負荷率もダントツ1位をキープしている状況なので,この連休に導入を決めたのでした.導入に際しては,毎度お世話になっているniiyan's blogさんのエントリを軸にさせていただ英数き,情報を集めました.ちなみにこのプラグインを入れることにより,動的生成のBlosxomを準静的生成にすることができます(2回目以降のアクセスはキャッシュされたページを表示するため).これによりサーバの負荷率軽減が期待され,ページ表示速度も向上し,サクサク動くようになります(恐らく).以下,ほぼ100%自分のための覚え書きになっていることをお許しください.
1)
まずはdynamic_cacheプラグインについて.Extension3さんからdynamic_cacheプラグインの最終版をいただきました(またはこれ).Configurable variablesだけはこちらにあるバージョンのものに変更します(またはこれ.コピペでOK).僕はredirect_urlを「/caches」とし,ログを保存しないようにしました.また,個別ページにもheadlinesを設けているので,post_recache_allの設定は「1」にしました.その他はデフォルトのままです.
post_recache_allの設定を「1」にしておくと,トラックバック受信時にキャッシュがすべて削除されてしまうことに気付きました(コメント投稿時は大丈夫).この設定を「0」にしたところ,トラバ受信時における全キャッシュ削除は無くなり,また他の機能にも影響はでなかったため,設定を「1」から「0」へ変更しました.
「他の機能にも影響はでなかった」と書きましたが,その後分かったことで,コメント投稿後にコメントが反映されなかったため,color99さんより教わったmeta要素をhead.htmへ記述しました.具体的には以下の3つ.
<meta http-equiv="Expires" content="Sun, 10 Jan 1990 01:01:01 GMT" />
<meta http-equiv="Cache-Control" content="no-cache" />
<meta http-equiv="Pragma" content="no-cache" />
2)
次に各種フレーバーの変更について.LittleStoryさんを参考に,foot.htmとfoot.wikieditishを変更しました.
back_and_forthプラグインを使っている場合,footのhtmとwikieditishには,リンク先の3と4の他,5のvalueに「$back_and_forth::prev_pathname;$back_and_forth::next_pathname」を入れたものも書き加えます.この他,リンク先にある20back_and_forthプラグインをインストールする必要もあります.このプラグインのConfigurable variablesで,show_in_categoryを1にすると同一カテゴリ内での移動になってしまうので,僕はそれを嫌い0にしました.こうすることでエントリ全体での前後移動が可能になります.正直ここでハマったので追記しました.
3)
最後はコメント投稿後にコメントが反映されるようにするための設定.ページをキャッシュしているので,この設定をしないとコメントが投稿された後でもキャッシュされた古いページが表示されてしまうため,投稿されたコメントがエントリ内に反映されないのです.この設定はCk2 Bloggerさんの「ラジオボタンでcookie」に完璧な解説があります.cookie.jsの最初行の設定は,var HOSTに自分のドメイン名を入れ,var PATHにはcookie.jsを置いたパスを書けばいいのだと思います.ルートに置いたならデフォルト設定のままでOKです.その他の変更はCk2 Bloggerさんの同エントリにある説明通り.もともと設置していたラジオボタンは,削除するのもアレかと思ってコメントアウトで対応しました.
以上です.
同プラグイン導入後,当たり前ですがやはりページ表示速度が劇的に変わりました.ページをキャッシュさせることで,アクセス解析はちゃんと機能するのか(キャッシュされたページを閲覧されてもPVやユニーク数のカウントに影響はないのか)心配でしたが,特に問題ないようです.ただ一つだけ残念な問題が生じました.それはモブログが使えなくなってしまったということです.これについてはniiyan's blogのにーやんさんにも相談にのっていただいたのですが,やはり一筋縄ではいかないようでした.Ck2 Bloggerさんのエントリとコメント欄(Moblogにトライ,Moblogにトライ #2)も拝見したのですが,僕と全く同じ症状で,しかも解決には至っていない様子だったので,僕も当面見送ることにしました(軽いページ表示を考えたら背に腹は代えられません).どうしてもモブログを使いたい時は,にーやんさんから教わった手動でキャッシュを消す方法により対処したいと思いますが,今は当面使わないつもりです.今後もし僕にPerlの力が付いたら対応してみたいです(いつのことやら).なお,以前kyoさんに指摘されて気付いたのですが,moblosxomプラグインは時折エラーが出ていたので,この際プラグインディレクトリから削除しました.
この連休中はずっとこんな事をやっており,この他にも過去ログを月単位,年単位,カテゴリ単位で表示させた時,エントリ全体を表示するとサーバに負担がかかるため,タイトルだけを一覧表示させて並べるようにしたりもしました.まだまだ気になる細かな不具合は結構あるのですが,そこは完全に自己満足の世界であり,閲覧者には不自由ないレベルの事なのでとりあえずOKとし,また時間を作ってBlosxom弄りに没頭したいと思っています.
いろいろ追記してグチャグチャになってますが,これが恐らく最後の追記.結局のところ,dynamic_cacheプラグインの設定を「0」にし,color99さんから教わったブラウザのキャッシュを消す方法をとりやめ,Ck2 Bloggerさんにある方法で対処することにしました.これで様子を見て,やはりコメント投稿後に反映されないようであれば,またcolor99さんの方法を導入することにします.個別エントリに「最近のエントリ一覧」をどうしても書きたいのですが,これとdynamic_cacheプラグインを同時並行で行うことはできないので(キャッシュされた古いページで見る最新エントリ一覧は最新ではないため),新規エントリ投稿後にいちいちキャッシュをすべて削除することにしました.動的生成をdynamic_cacheプラグインが後押しする,みたいな形を取ります.これと併せてlast_modifiedプラグインも入れました.少しは負荷削減に寄与するのではないかと期待しているところです.
writeback message: Ready to post a comment.