lighttpd自分用メモ。
自分が動かして調べた事を書く。
まだ書きかけ。
目的
- rfc2616の仕様上、POST前には必ずpersistent connectionは切断されてしまう事を知る。
- 現在のtcpcgiでは、persistent connectionが維持されていないとパフォーマンスは全く出ず、これ以上の開発も大変そうなので、代用となるhttpdを用意する。
- FastCGIで動的コンテンツを提供。
- クライアント側からのrequest-bodyの送信速度を保証する為に、lighttpdの前にsquidを置く事にする予定。
インストールについて
- pcreが入っていないなら、まず先にpcreを入れておく。
- 無いと、ものすごく動作に支障をきたす。make checkも通らない。
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-6.4.tar.gz
tar xvfz pcre-6.4.tar.gz
cd pcre-6.4
CFLAGS="-Os -march=i686" ./configure --prefix=/usr --enable-utf8
nice make all check
su
make install
- あとは、普通にインストール。
- ./configure時のオプションは、あとで、もう少し見直す予定。
bash
export VERSION=1.4.5
wget http://www.lighttpd.net/download/lighttpd-${VERSION}.tar.gz
echo f2e16caf782b9fc8df634b1ea65b7645 &&
openssl md5 < lighttpd-${VERSION}.tar.gz
tar xvfz lighttpd-${VERSION}.tar.gz
cd lighttpd-${VERSION}
CFLAGS="-O2 -march=pentium4" ./configure \
--prefix=/usr/local/lighttpd-${VERSION} \
--disable-ipv6 \
--without-mysql \
--without-ldap \
--without-attr \
--without-valgrind \
--without-openssl \
--with-pcre \
--with-bzip2 \
--without-webdav-props \
--without-gdbm \
--without-memcache \
--without-lua
nice make all check
su
make install
rm -f /usr/local/lighttpd
ln -sf lighttpd-${VERSION} /usr/local/lighttpd
続く……
メモ
- 「server.event-handler = "linux-rtsig"」にすると、mod_cgiが動かなくなった。
- cgiスクリプトを動かそうとすると、ずっとリクエスト応答待ちになって戻ってこなくなる。
- fastcgiプロセスを起動してくれるのはいいものの、シグナルマスクしてくれないので、lighttpdを操作する為に流したシグナルが、子プロセスとして起動したfastcgiプロセスにまで流れてしまう。これは、すごくまずい気がする。
- 動作中のlighttpdの動作を制御する際に、SIGHUPやSIGINTやSIGUSR1を使うが、それが、fastcgiプロセスにも流れてしまう、という事。
- あとで、パッチを書く事。
- setenv.add-environmentで追加した環境変数は、mod_cgi環境では適切に動作するが、mod_fastcgi環境では二重に定義されてしまい、すごく嫌な事になる。特に、gaucheのwww.cgiで。
- 自分が途中まで動作確認しようとした設定ファイルの残骸。
結論
- 速度は確かに早いのかも知れないが、ちょっと微妙じゃないか?
- 細かいところで不安ありまくり。
- 自分は、速度よりも、堅牢性が欲しい。
- やっぱり自分は、自分でfastcgi対応のhttpd作るか、それか、無難にapache2でも使う事にしようと思う。
- パフォーマンスはsquid任せで。
- ……と思っていたが、apache2はapache2で色々と微妙。それなら、手を入れやすいlighttpdの方を選ぶ事にした。
- しかし、結局、手を入れる事自体が面倒になったので、現在はapache2を使っている。
最終更新 : 2006/03/05 15:09:27 JST