Bulkfeeds Similarity Search をはじめとして、Javascript 型でページにはりつける系のサービスはいくつかありますが、大きな問題点として、
という問題がありました。Bulkfeeds でもキャッシュして出力するなどの努力はしていて、2度目以降は高速にサーブできるはずなのですが、著名なサイトでのアクセスが多かったり、検索結果のRSSへのアクセスが集中したりすると Apache のスロットを食いつぶしてしまい、Similarity Search 設置側のページで待たされることなんかもたまに発生していました。
この問題を解消するために jscache という CGI スクリプトを作成しました(別名: くっつきキャッシュ)。このスクリプトのやっていることは単純で、リモートの js を取得して、サーバ側にキャッシュして保存。キャッシュ有効期間中は自分のサーバからコンテンツを吐き出すようにするものです。これならホスト側のサーバ負荷に表示が引きずられることはありません。レンタルサーバなどでCGIが利用できる環境にある方は、利用してみてください(インストールが簡単になるよう、モジュールを一切使用していません)。
Bulkfeeds Similarity Search を例にして設置方法を解説します。MT の Individual Entries (または他のBlogツールの該当テンプレート) の http://bulkfeeds.net/app/similar.js の部分を http://あなたのサーバホスト名/jscacheの設置場所 に変更して、リビルドします。これで、js の表示はあなたのサーバから行われるようになり、Bulkfeeds 側のサーバ負荷に影響されなくなります。(キャッシュがきれた場合などのアクセスはのぞく)
動作が確認できたら、設定変数 $debug を 0 にしておけばエラーがうるさくならずにすみます。
$remote_url = $ENV{PATH_INFO}; $remote_url =~ s!^/!!;こうして、http://ホスト/jscache/http://example.com/hoge.js として使えばよいでしょう。
私も似たような中継君JSという同機能のものを作っていたのですが、エラー時の処理を手抜きしています。(このエントリのトラックバックされた方で中継君JSを紹介してくださった方々ありがとうございます。)
jscacheのソースを拝見して、自分の作成したCGIを見直そうと誓いました。はい。
Miyagawa さま。TBでとても有用な情報をお知らせ頂き有り難うございました。早速僕の方でも利用させて頂きたいと思います。多謝!!
Posted by: drk on May 8, 2004 06:04 PMトラックバックでお知らせ頂き、どうもありがとうございました!
Posted by: マユミ on May 13, 2004 11:11 PM