*.htmlを*.html.gzに圧縮しても*.htmlのままでアクセスできるようにしてディスク容量を節約する

Webサーバのコンテンツ(html)が増えすぎて、ディスク容量が心細くなってきたんだけど、なんかいい方法ない?という相談をもらったので。

例えばApache2なら、次のような方法がある。

  1. gzipコマンドでhtmlファイルを全て圧縮してしまう。ファイル名は自動的に*.html.gzになる。内容にもよるが、これでディスク使用量は5~8割くらい削減できる。
  2. httpd.confに細工する。
    • 該当のディレクトリ配下でMultiViewsをオンにする。具体的には「Options MultiViews」 デフォルトではたいていもうこうなってる。
    • <IfModule mime_module>で「AddEncoding x-gzip .gz .tgz」がコメントアウトになっていたらそれをはずす
    • <Files *.html.gz>
        ForceType text/html
      </Files>
      を追加して、apache再起動。
  3. ブラウザでふつうに http://example.com/hoge.html とアクセスする。hoge.html.gzの内容が展開されて普通に見れる。
MultiVeiwsの機能とブラウザの圧縮/展開機能の組み合わせ技。圧縮状態で転送されるのでネットワーク帯域も節約される(利用者側から見ると閲覧が若干「軽く」なる)といううれしい副作用もある。 DEFLATE使うという手ももちろんあるが、それだとディスク容量の節約までにはならない。

別にそう珍しい手法ではないと思うのだが、実は意外と知られていないのか?と思った。

もちろん、ディスク容量を圧迫するほどのhtmlファイル数ってどんな量だ(笑)という話もある。 管理作業用のサーバでanalogだかwebalizerだかのアクセスログ解析結果のhtmlが日毎に蓄積され続けていて、気がついたらすごい量になっていてさあ大変、ということらしい。 お客様向けのマシンであればディスク追加なりなんなりですぐさま対応するし、そもそもいまどきそんな小さなハードディスクじゃない、しかし、大したアクセス数もない社内管理用の古くてしょぼいサーバでの話なので、予算をかけずにセッティングだけでどうにか切り抜けたかった、と。なるほど。

トラックバックURL

このエントリーのトラックバックURL:
http://www.ywcafe.net/mt/mt-tb.cgi/686

コメントする

(初めてのコメントの時は、コメントが表示されるためにこのブログのオーナーの承認が必要になることがあります。承認されるまでコメントは表示されませんのでしばらくお待ちください)


画像の中に見える文字を入力してください。