503エラーが頻発していたIDEA*IDEAが安定するまでにしたこと
- March 3rd, 2009
- Posted in 開発ツール・技術
- Write comment

さてちょっと前ですが、このブログで503エラーが出まくって不安定だったのですが(ごめんなさい・・・)、なんとかいろいろ施して安定したようです。
そのときにいろいろしたのでメモ的に残しておきたいと思います。参考になる人もいるかもしれないので・・・(主に自分用ですが)。興味のない方はスルーの方向でお願いいたします。
なお、今回の作業ではまたしても青い人&赤松さんに大変お世話になりました。感謝感激です。
■ サーバー構成
ちなみにサーバー構成ですが、ざっくり次のような感じです。

↑ LucidCart使ってみた。微妙に使いにくいぞ・・・。
■ やったこと
時系列でやったことをば。
- 何かがおかしい!
- まずはtop
- MaxClientsを変更
- error_logを調査
IDEA*IDEAで503が頻発。ちなみにその時期のPVは1日3万+ぐらい(Google Analyticsで)。
まずはロードアベレージやSwapなんかをtopで調査。見てみるとLAも1以下だし、Swapもしていないので「あれれ?」という感じ。
そこでリクエストが裁き切れていないのだろう、ということでリバースプロキシーサーバーとIDEA*IDEAのサーバーのMaxClientsを変更。ざっくり1024にまであげてみる(← 横暴)。
それでもまださばききれていないようで503が頻発。おかしいなぁ、ということでエラーログを調査。次のようなエラーがずらずらと。
[Sun Feb 22 11:11:17 2009] [error] (113)No route to host: proxy: HTTP: attempt to connect to 192.168.0.12:80 (192.168.0.12) failed
あと、今はなきMovableTypeのスクリプトにbotが来まくり。でもまぁ、エラーなんでこれは無視することに。
ここで青い人から「IPが重複していたりとかないですか?」と言われる。まさかそんなうっかりミスは!と思って調べてみたけどやっぱり大丈夫でした。でもよくあるミスらしい。
次に赤松さんに「ProxyPassのオプション変えてみたらどうですか?」と助言され、ここらへんを参考にProxyPassを変更。ざっくり次のような値に。
ProxyPass / http://192.168.0.12 smax=5 max=20 ttl=120 retry=300
なんだか良くわからないけど、このぐらいでいいかな、としばらく様子見・・・だけどすぐに503発生。
次に赤松さんから「ではmod_rewriteをPモードで動かしましょう」と助言される。mod_rewriteでリバースプロクシー的な動きをさせるためのものらしい。次のように変更。
<VirtualHost *:80> ServerName www.ideaxidea.com ServerAlias ideaxidea.com RewriteEngine On RewriteRule (.*) http://192.168.0.12$1 [P] ProxyPassReverse / http://192.168.0.12 </VirtualHost>
ちなみに参考にしたのは以下のサイト。
» mod_rewriteでのreverse proxyとRedirect動作 ありえるえりあ
以上までの作業が先週ぐらいかな。それ以来安定しているので、最後のPモードが利いたのかな、と思ってはいるのですがあまり細かいことはいまだにわからず(詳しい人教えてください・・・)。
なお、全部のサーバーを再起動しちゃえばきれいになるのでは、という思いが一瞬あたまをよぎりましたが、まだやっていません(← Windows的発想)。
それにしてもサーバーまわりは奥が深いですね・・・。こうした経験を積みつつ、今後に活かしたいと思います。上記を読んで「ここがおかしくね?」という貴重なご意見をいただける方は是非コメントなどを(優しく)残していただければと切に願います。


今僕のサイトも503エラーが、でまくりで、、、これを参考に
がんばります。。
サーバーって聞くと拒否反応が、、、汗;