さくらインターネットに怒られた件
昨日、サーバ管理者から「トップページの負荷が高すぎるからパーミッションを000に変更した」という、お叱りの連絡を受けました。 というわけで、一時的に突然閉鎖したっぽい感じになってました(汗) 「SSIのincludeのvirtualは絶対パスで指定しなければならない」とのこと。 理由はわかりませんが指摘に従い修正して復旧。 てゆーか、トップページの負荷? とりあえずリソース推移を見てみる ────
転送量が25GB!?Σ( ̄□ ̄;)
なんか無茶苦茶な輩がいるぞ。 犯人はこいつか? とはいえ、この程度でトップページの負荷にはつながらないよなぁ。 てゆーか、転送量がわけわかんないんだけど・・・
はい???・・・ あっ
これを見て最初はSSIよりMultiViewsの問題だと思いました。 間接的には遠からず、つい最近サーバの仕様変更でMultiViewsの設定変更が可能になったので、とりあえず無効にしました。 しかしながら、怒られない程度に実証実験した結果、MultiViewsは本丸ではなかった。 かなり面倒なので結論だけ書きます。
- virtualに相対パスを指定する (foo.shtmlの中で include virtual=bar.html)
- PATH_INFO付きでアクセスする (foo.shtml/hogeなど)
- なぜか自身がインクルードされる (includeの位置にfoo.shtmlが入る)
- 最初に戻る
PATH_INFO付きで相対位置ずれるの意味不明だし、ファイルが存在しないと自身をインクルードするの最高にロック。 おかげで無限ループですよ。 実際は10回で止まりますが、件のトップページにはincludeが3ヶ所かつ再帰的に繰り返されるので、3^10 = 59049回。 確かにこの回数を本来のサイズに掛け算したら転送量が合うんですよねぇ(; ̄д ̄)ナンダコレ
SSIのincludeのvirtualは絶対パス。 ゼッタイ。
絵描く時間なくなった、、