Views
Apache 事例報告
「高知大学気象情報頁」てんやわんや
最初にお断り
- ほとんど Apache 2.2 ではありません
- 特殊な事例なので、一般の方にはあまり参考にはなりません
「高知大学気象情報頁」とは
- 1994 年、気象協会 Anonymous FTP により「ひまわり画像」提供開始
- ミラーとして、国立がんセンター gopher / 高知大学 WWW (http)
- 1996 年、気象協会より独立
こんな「頁」
保存書庫(アーカイブ)
- 一般用(6種類)/研究用(2種類)
- 約700GB(未公開元データ 約3TB)
- 一度出した画像は消さないポリシー
保存書庫はこんな感じ
ディレクトリが深い
アクセスの記録
サーバ構成
- Backend Server ... PC 2-4 台
- ディレクトリによって分担
- 最近、台数減らせるようになった
- 大容量HDDのおかげ
- Frontend Server ... PC x 2 台
- DNS による負荷分散
- やってみたかっただけ
サーバ構成の図
Backend をどうする?
- NFS?
- ETag が2台の FrontEnd で違う
- If-None-Match でアクセスされると2度同じものを出す
- Mod_Proxy ... ProxyPass (Reverse Proxy)
- ちなみに、ProxyRequest を ON にしてはいけない
Backend への振り分け
- Apache 1.3 だと、定義順
- ProxyPass /some/dir/ http://backend1/some/dir/
- ProxyPass /some/ http://backend2/some/
- Apache 2.0 では Mod_Rewite 必要
なので、Apache 1.3 を使用
- 悲劇のはじまり?
- 2.0 に早く代えればよかったのに
- Proxy は基本的に HTTP/1.0
- HTTP/1.1 で受けて HTTP/1.0 で Backend へ
server-status を RRDTool で表示
「高速」ダウンロードの禁止
- 「高速」の特徴
- 分割ダウンロード
- 同時コネクション
- なぜいけないのか
- HTTP/1.0 では分割されない
分割ダウンロード禁止法
- SetEnvIf Range "..*" naughtydownloader
- Deny from env=naughtydownloader
同時コネクション禁止法
- server-status を読んで
- 同じ IP で
- "W" Sending Reply が N個以上
- /sat/ (保存書庫)にアクセス中
- ipfilter で接続禁止
Apache Server Status
問題おおあり
- ダウンロードの再開も Range: 使うのに
- 学校授業での利用だと、Proxy からアクセス
お馬鹿なダウンローダ
- こんなアクセス
- ...00.jpg, ...01.jpg, ・・・, ...25.jpg ・・・ ...99.jpg
- 23時までしかないっつのに
- コンテンツ無いよキャッシュしないので
- Backend で TCP コネクション浪費
なめたらペナルティ
- ErrorDocument 404 /cgi-bin/404.cgi
- 404.cgi
#!/bin/sh echo "Content-Type: text/html" echo "" sleep 1 echo "<HTML><HEAD>" echo "<TITLE>404 Not Found</TITLE>" ・・・
というように
- サーバ管理者は
- 日夜戦い続けているのです
だけでは、アレなので
- Apache 2.2 関連トピック
- ProxyPass のキャッシュ
- Proxy でロードバランス
- mod_cband で帯域制限
ProxyPass のキャッシュ
- うちの場合
- コンテンツ多様で繰り返しは少ない
- キャッシュしないほうがよい
Proxy でロードバランス
- うちの場合
- ロードバランスのために、もうひとつ前に1台?
- ちょっと違うような気が、、、
- Load Balancer + CGI/PHP/mod_python Servers + SQL/Zope server だと嬉しい
mod_cband
- 「GUIでstatusを見ることができたりして、なかなかいいです。」
- Mac OSX でなんとかコンパイル
- 実行時エラーで撃沈
では
- おみみよごし、失礼いたしました。
- おあとがよろしいようで