Movable Type: 2007年3月アーカイブ
Trackback Albirexのサイトが503エラー(プログラム過負荷によるサーバーエラー)を頻発するため、やむを得ず別サーバーをレンタルして運用開始して2週間が過ぎた。
エラーに関してさくらサーバーさんに問い合わせのメールを出したところ、こんな返事が返ってきた(要約)。
あなたのサーバを確認したところ、CGIやPHPによる過負荷やアクセス数等に関する制限がかかっていた。いったん緩和するけど、今後同様にサーバに許容範囲を超える過負荷等が発生したら、また制限が設けられる可能性があるよ。
特段アクセス数が多いわけでもないし、負荷がかかるプログラムを使っているわけでもないので、なんでエラーを起こすのか(というか、プロバイダ側からアクセス制限をかけられるのか)、いまいち不思議ではあった。ふと思いついて調べてみると、原因と思われることにぶつかった。これだ。
「条件付きGET」のススメ@Ogawa::Memoranda
PHPファイルなどの動的コンテンツにアクセスした時には、上記の両ヘッダを返されないため、そのままでは条件付きGETが行われません。
簡単に言うと、インターネットの世界では、サーバーにあるデータの更新時刻ととパソコン内にあるデータの更新時刻を比較して、サーバーのデータの方が新しければサーバーからデータを読み込み(条件付GET)、そうでなければパソコン内からデータを読み込む、という仕組みになっている。
ホームページの画面というものは、アクセスするたびにサーバーからダウンロードされるわけではなくて、以前見たときから更新されていないページならば、自分のPCに保存されたデータを読み出して見ていることになるわけだ。そうすることによってサーバーからダウンロードされるデータ量を減らすことができるので、情報の交通渋滞が起きるのを防止できるってわけ。
拡張子が「.html」になっているページは上記のような更新時刻をチェックする仕組みがあるんだが、Trackback Albirexのサイトは各ページの拡張子が「.php」になっているので、そのままでは更新時刻を知ることができない。従って、毎回アクセスするたびにデータのダウンロードが発生するので、「過負荷」状態が発生してしまう。
解決策としては、phpのページにも、htmlページと同様の「Last-Modifiedヘッダ」を付加してやればよいわけで。
その方法が上述ページに記載されております。
さっそくやってみようと思ってるところ。
トラックバックのテスト
Trackback Albirexへのトラックバックの文字化けが生じていたので、文字化け防止策を施してみました。
gooブログとか、fc2ブログとか、ブログの文字コードがEUC-JPの場合に文字化けが起こりやすいようです。
と言っても毎回化ける訳じゃなくて、時々正常に文字コードを認識できないことがあるようなのです。
タイトルや概要に特定の文字が含まれている場合とか、原因はいろいろ考えられるんですが、まだ特定はできていません。
とりあえず「小粋空間」さんの
Trackback文字化け対処
をやってみました。
うまくいくといいんだけどなー。