March 22, 2005

Bulknews RSS キャッシュについて

Bulknews の RSS のアクセスが尋常でない感じに増えてきていて、そろそろなんらか対策をしないと、という感じになってきたので、とりいそぎ以下の設定を行いました。

- HTTP レスポンスヘッダに Cache-Control: public, max-age=3600 の追加
- If-Modified-Since をつけず、大量にアクセスしてくる User-Agent に対し、暫定的に 0 bytes のフィードを返す

Bulknews では企業のゲートウェイ経由でのアクセスが相当数ある(全体の10%程度?)ため、プロキシサーバでのキャッシュがきいてくれればということで、前者を設定してみました。様子を見ていますが、アクセス上位のゲートウェイサーバのいくつかではかなりキャッシュが有効になっていて、アクセス数が1/10 程度に減少しているようです。

後者は暫定的な帯域消費への対策で、そのようなリーダーの作者さんなどとコンタクトをとりながら、解決に向かえればと思ってます。

これでも問題があれば CDN や BitTorrent のお世話になる感じですかね。。

Posted by miyagawa at March 22, 2005 07:06 PM | Permalink | Comments (3) | TrackBack(0)
Comments

> If-Modified-Since をつけず、大量にアクセスしてくる User-Agent に対し、暫定的に 0 bytes のフィードを返す

このときのステータスコードは何を返しているのでしょうか?

bulknews に大量にリクエストを投げるのは避けたいので確認してませんが、もし 0 バイトのフィードを 200 OK で返しているなら、単純に 503 Service Unavailable を返すというやり方の方が良いのでは?

Posted by: 斎藤宏明 on March 23, 2005 08:29 AM

ステータスコードは200です。
403や503などのコードを返すと、クライアント側でエラーとなりさらにアクセスする頻度が増えるため逆効果となります。

ちなみにこの処理は自動化しているわけではなく、目視で特定のソフトウェアのUser-Agentを調べてやっています。最新版ではIf-Modified-Sinceに対応しているため、アップグレードを促すフィードアイテムを表示することも検討しています。

Posted by: miyagawa on March 23, 2005 01:18 PM

あ、確かに。エラーだったらリトライするという実装のクライアントだと、何回もアクセスしに来ることになりますね。なるほど。

Posted by: 斎藤宏明 on March 23, 2005 09:08 PM
Trackbacks
TrackBack URL for this entry: http://blog.bulknews.net/mt3/mt-tb.cgi/1601
Post a comment