2007年3月12日月曜日

Apacheチューニング by mod_proxy

今度はmod_proxyを使って負荷分散をしたいとのリクエスト。
やっちゃいましょ♪
ちなみに対象のApacheは1.3.2xでした。

このmod_proxyは何をしてくれるかと言うと、A、B二つのサーバがあったとします。Aは低、Bは高スペックと仮定します。
で、Aにmod_proxyを設定しBを参照するように出来るて、あたかも
入り口はAだけど、内部的にはBが動いている。
そうやって高スペックのマシンに処理を任せてしまおうってのがmod_proxyの
機能です。他にも機能がたくさんあるみたいですが、ここでは割愛します。

では、早速
1)Apache設定
#普通にモジュールを読み込むだけです。勿論、上の例だとAに設定
LoadModule proxy_module       modules/mod_proxy.so

AddModule mod_proxy.c

#ProxyRequestsは[Off]を固定で設定です。
#ProxyPassとProxyPassReverseはおまじないだと思って同じ値を設定します。
#第一には処理を任せたいAのディレクトリ、第二引数には任せるサーバ
#のURL(ディレクトリ含む)
<IfModule mod_proxy.c>
ProxyRequests Off
ProxyPass / http://Bserver.co.jp/
ProxyPassReverse / http://Bserver.co.jp/
</IfModule>
こんな感じ。
第一引数を細かく指定したい場合はmod_rewriteを併用する事で出来ます。
ProxyPassだと正規表現が使えないのでちょっと残念


2007年3月11日日曜日

Apacheのチューニング by mod_cache

勤めていた会社を辞めたのですが、バイトに誘われてしまい。
軽くOK出しちゃいましたw
そっしたら、当初は聞いていなかったApacheのチューニングをするハメに!!
んなのやったこと無いから!てか俺で良いんか!?やるよ?やっちゃいますよw
てな感じでやってみました。

最初はモジュール追加するぐらいだろうと思ってたんですが、
これが手強かった。。。

今回はアクセス数の突発的な増加が良くあるサイトが対象なので、同時アクセス
が高くても耐えられる形を望まれました。
で、基本はリクエストがあった場合にはPHPの処理が走るのですが、PHPでは無くて、キャッシュを返すようにして負荷を下げようという方針にしました。
(このPHPが曲者で凄い重いんですよ。。。色んなとこみてますんで)

で、やった事

1)モジュール追加
apacheのモジュール参照先にmod_cache.soとmod_disk_cache.soをコピーしました。今回は現状動いているサーバに対して対応しなければいけない&私がApacheをコンパイルした訳でも無く、コンパイル時の資料も無いので、一からやるのはリスクが高いと判断しまして、soの追加にしました。
あ、Apacheは2.0です。

2)Apacheの設定変更

以下の二行でモジュール読み込み
LoadModule cache_module       modules/mod_cache.so
LoadModule disk_cache_module       modules/mod_disk_cache.so

簡単だ~ね♪
で、キャッシュの設定は以下
<IfModule mod_cache.c>
<IfModule mod_disk_cache.c>
CacheEnable disk /
CacheRoot /usr/local/apache/cache
CacheSize 50000
CacheDefaultExpire 3600
CacheDirLength 4
CacheDirLevels 4
CacheIgnoreCacheControl On
CacheIgnoreNoLastMod On
</IfModule>
</IfModule>

この設定で得にポイントは無いかな~。これだと、全てのページを強制キャッシュ、で、デフォルトで1時間キャッシュする感じ。
あと、キャッシュするのって更新が頻繁なページも対象になると気を付けない
といけないんよね。更新したのにページが変わらないとか言われちゃうから。
いや、だからキャッシュですってば(笑
とか言わなきゃならん。ま~そこら変は上手くコントロールして下さい。

3)Apache再起動
設定を反映するタメに再起動して下さい。

これでおしまい。。。。
と思ったら大間違い(笑
この罠に私はかかりましたよw
この状態だと二つの問題が発生します。
・キャッシュされたデータっていつ消えるの?
・クエリー(URLに含まれる「?」以降の文字)があるとApacheのログでexpiresが無いって言われるんだけど、で、キャッシュされないじゃん!

ディスクキャッシュ(mod_disk_cache)の場合にはhtcachecrean(確かそんな名前)というツールがApacheについているので、それをデーモンかcronで起動するように設定します。ちなみに私が触った環境にはそんなツールがありませんでした。。。なので実際にcronに登録したのはこんな感じ

*/30 * * * * rm -rf /usr/local/apache/cache/*

すげー原始的(笑
一応これで解決してるみたいです。

そして、キャッシュされないって問題がすげー悩みました。
どうやらクエリーが含まれるページをキャッシュするにはHeader情報にExpiresとLastModifieが必要らしいです。で、PHPなので処理の最初にコードを追加。
header("Expires: ".gmdate("D, d M Y H:i:s",time() + 60*60)." GMT");
header("Last-Modified: ".gmdate("D, d M Y H:i:S", time())." GMT");

これは本当に時間かかった。でも何とかなって良かったw
Apacheのベンチマークを使うと驚く程の成果出ましたよ♪
いや、久々に大満足でした~



今日はクラコン

私が通っているトランペットのレッスンのクラスコンサートに行って来ましたw
いや~気持ち良かったす♪
でも、緊張してしまって音が出たり出なかったり(^^;
課題曲で「星に願いを」を吹きましたがもっとキレイに出せたな~
アドリブでもっと高音出したかったな~
とかそんなばっか思ってたりして(笑
またやりたいですね~。
総勢30人ぐらいで、しかもご家族を連れて来てたりして凄い人数でした。
部屋の暑いこと暑いこと。でも、他の人の演奏とか中々聞く機会って無いんで
凄い勉強になりました。そして、また頑張っちゃう気持ちになりましたよw
水野○○や淀川先生じゃないですけど、
「いや~音楽って本当にすばらしいですね」
それではさよなら、さよなら、さよなら

2007年3月6日火曜日

刑事コロンボ 最終!!

これで刑事コロンボが最後になります。
今まで良く見たな。。。私はヒマなのか(笑
では感想です。

策謀の結末はテロリスト(?)との攻防になります。といってもそこはコロンボですのでドンパチは無いです。
というか良く犯人にたどり着いたと思いますよ。あの状況で疑惑はかけないんじゃないかな、、、と思ったり(^^;
そして、犯人を結びつける証拠となりそうな物は見つけたんですが、
なんと!なんと!!最後の5分が見れなかったorz
DVDに傷でもついてたのか家のPCで止まったままになっちゃった。。。
おかげで解答が分らないまま生殺し。
最後は私の予想通りなのかどうかが非常に気になるよ。
また借りなきゃダメか~。

2007年3月5日月曜日

刑事コロンボ vol 22

「秒読みの殺人」は証拠になりそうな物が結構あってかなり分りやすいと思う。最後の方にコロンボの仕掛けた罠も見抜けちゃえるぐらい分り易い(笑
見慣れたからかなw
操作に行き詰まると時々仕掛けられる罠が結構面白かったりする。心理的な部分を見事に突いたとこが凄いです。さらば提督の引っ掛けとか良かったな~

「攻撃命令」はかわいい×2ドーベルマンが出てきまして、凶器は彼らです。個人的には犯人がウソつかなければ、逃げとおせると思ってたんですけどね。あっさり、さっくりやられてますw



尾瀬岩倉に行ってきました

だんだんと春めいて来ましたが、ホワイトワールド尾瀬岩倉へ行って来ました。

行く途中では梅は咲いてるは、道路も駐車場も雪が無い。スタッドレスもチェーンも不要。春ですね。聞いた話によるともう閉まったスキー場もあるとか。
でも、尾瀬岩倉のゲレンデはまだまだ雪が残ってました。
日中はシャリシャリシャーベット、夕方はカチコチ。環境はあんまり良いとは
言えないかな。。。今シーズンはいつまで持つか???
ちなみにリフトは全然並ばないです。

この日はキッカー中心。3連続でキッカーが並んでいて良い感じ。踏み切って直ぐにテーブルトップが無く、ちょっと落差が生まれるので(ちょっと怖い)、最初はストレートで飛んでましたが、気持ち良い!!

2007年3月3日土曜日

提案書書かなきゃ。。。

仕事で提案書を何度か書かせて貰えたけど、今までは他の人が書いた奴を見よう
見真似で書いてました。それだけだと、こんな事書いたな~で終わってしまうので、書き方やポイント等を一応勉強しようと思ってこんな一冊読んでみました。ま~一冊読んだぐらいじゃどおって事も無いし、何よりも経験値積む方が
上ですけどねw

RFPという単語は聞いた事あったけど、何を指しているのかを始めて知りました(汗
こんなんお客さんから貰った事無いぞw
いつもヒアリングのみ。小さい案件でも、そりゃ作ってくれるなら喉から手が
出るほど欲しいけど、そうそう貰えませんね。
でも、RFPが無いなら無いなりにヒアリングでどんな情報を聞き出したら良いか
の参考にはなるなぁと思います。
提案書の書き方やその目的はやっぱりハッキリ意識しておくべきだと思うので、読んでいて後悔しないと思われ。