Skip to content.

kagome.lab.tkikuchi.net

Sections
Personal tools
You are here: Home » Members » tkikuchi's Home » その他 » OSC2006 Tokyo/Spring » Apache 事例報告
Views

Apache 事例報告

Document Actions
「高知大学気象情報頁」てんやわんや

最初にお断り

  • ほとんど 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 必要
    • RewriteRule ^/some/dir/(.*)$ http://backend1/some/dir/$1 [P]
    • RewriteRule ^/some/(.*)$ http://backend2/some/$1 [P]

なので、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 でなんとかコンパイル
  • 実行時エラーで撃沈

では

  • おみみよごし、失礼いたしました。
  • おあとがよろしいようで
Created by tkikuchi
Last modified 2006-03-20 08:47
 

Powered by Plone

This site conforms to the following standards: