日曜研究室 〜技術的な日常〜

技術的な観点から日常を綴ります

   9月 06

Pound + Apache + lighttpdを1台で動かしてみた

あれから負荷分散の方法について色々調べていましたら、「lighttpdはapacheより速くて負荷が低い」という情報が目に入りました。まぁ、そんなことは以前から知ってはいたのですが、lighttpdの利用歴はiPod touchに試しにインストールしてみたという程度でした。それでじゃあ実際にどのくらい速くて負荷が低いのか利用者の声を調べてみると、総合して、速さにして同等〜約2倍、メモリ使用量にして3分の1〜10分の1程度という印象を受けました。 これは凄い!lighttpd使ったら複数台構成にするの先延ばしにできるんじゃね?ということで、複数台構成はひとまず置いておいてlighttpdを使うことにしました。 全てlighttpdにしてしまうのはリスクがあるので、静的ファイルのみlighttpdでホストし、動的ページは今まで通りapacheでホストすることにしました。 もちろんlighttpdとapacheでポート番号を被らせる訳にはいかないので、Poundというリバースプロキシ専用のソフトを入れ、それに80番ポートを割り当て、apacheに81番、lighttpdに82番を割り当て、全て1台のサーバーの中で動かすことにしました。 apacheかlighttpdどちらかにリバースプロキシを兼任させることも考えたのですが、役割が非対称になることに嫌な予感がしたことと、Poundは設定が簡単だということ、また複数台構成にも対応させやすそうなことを考えてPoundを選びました。 今回やったことは負荷分散でもなんでもなく、ただの負荷の削減です。 以下、今回の設定を行うにあたってコマンドのログから主要なものを抜粋。 1.lighttpdのインストール、設定、起動 # yum install lighttpd# vi /etc/lighttpd/lighttpd.conf※ドキュメントルートとログファイルのパスとポート番号のみ変更。あとはデフォルトのまま。 # vi /etc/logrotate.d/lighttpd※ローテートを日単位へ、ログファイルのパスをあわせる # chkconfig on lighttpd# /etc/rc.d/init.d/lighttpd start 2.Poundのインストール、設定 # wget http://www.apsis.ch/pound/Pound-2.4.3.tgz# tar zxvf Pound-2.4.3.tgz# ./configure# make# make install ※設定ファイルのフォーマットがバージョン1系列と2系列で違うので注意。古い設定方法の情報を真似ても全く動作しません。設定方法、ログファイルのパスの変更方法は以下を参考。手軽なロードバランサ Pound を導入してみました/楽 # vi /usr/local/etc/pound.cfg※デーモンモードに設定、ログのファシリティを設定、ローカルにあるwebサーバーのアドレスには127.0.0.1を指定。 # vi /etc/syslog.conf※ログファイルのパスを変更、lighttpd,apacheでログを記録してるのでPoundはエラーのみ記録 # /etc/init.d/syslog restart ※Poundのlogrotateは未設定。1日後にチェックしてその容量でローテートのスパンを決定する。 3.mod_rpafのインストール、設定 mod_rpafのインストール、設定については以下を参考。CentOS5.1 に mod_rpaf をインストールする – Nire.Com [...]

Read the rest of this entry »