東北のメインサイトはXOOPSを使っています。キャッシュが働いているときはそこそこのレスポンスなのですが、キャッシュを再作成するタイミングにぶつかると、表示はサーバー性能に依存することになり遅くなります。
XOOPSの構造上これは仕方がないことなのですが、これをどうにかする方法はないものか。
ものすごくシンプルな発想をしてみました。
キャッシュを強制的に作ってしまえれば問題ないのですが、探してみたところそのようなモジュールの類はない。
それなら、定期的にトップページにアクセスさせればキャッシュを作るだろうと、CRONを使って何かできないかと考えてみたところ、ついでなのでトップページも静的に作ってしまえばいいという結論に達した。
これは簡単な方法で解決できることで、CRONで定期的にトップページをWGETすればいい。そうすればその時点のindex.htmlが作成できるので、トップのURLへアクセスされたらindex.htmlが表示されることになる。XOOPS本来のindex.phpはそのままにしてできることだし、非力なサーバーでもトップページの表示を改善できる方法だ。
具体的にはこんなシェルをCRONで毎時0分に実行しています。
#!/bin/sh
cd /virtual/xxxxxx/public_html/example.com
rm index.html
/usr/bin/wget http://example.com
exit
例はCORESERVERなので、試すときは自分の環境に合わせてください。
何をしているかといえば、
1.ドメインのトップディレクトリへ移動
2.index.htmlを削除
3.WGETでindex.htmlを作成
これだけです。
通常なら、indexページが表示される順番はindex.html→index.htm→index.cgi→index.phpとなるはずなので、先にindex.htmlを削除しておけばWGETがアクセスするのはXOOPS本来のindex.phpになり、その結果WGETで静的なindex.htmlを作成できます。
通常のURLでアクセスされたときに表示するのはindex.htmlになるので、よほど間が悪く0分にアクセスしない限り表示は速くなります。
XOOPS本来の機能で表示速度を改善しているわけではないので、あくまで表面的な表示速度の改善でしかありません。
しかし、利用者にしてみればindex.htmlだろうがindex.phpだろうが関係ないわけで、ページの表示にストレスを感じないことが一番でしょう。
そう考えればこういう方法もありかなと思います。
ちなみに、サイドバーへ表示しているブロックがトップページと共通なら、このタイミングでブロックキャッシュも作られるのでそこそこ恩恵は受けると思います。
同じカテゴリの記事
- ついに東北のサーバーを移転しました
- スパムコメントやスパムトラックバックの扱い
- GoogleとMSNは制覇できたようです
- おかげさまでGoogleページランクが3です
- D3Pipesテンプレートの備忘録
- データベースサーバーを移転しました
- CSS NITE ビギナーズへ参加してきた
- 東北AM研究会ブログの備忘録
- 東北アフィネットの備忘録です
- サイトチューニング第一弾備忘録

Comment feed