mod_cml

Lighttpdでプロセスを起動せずにスパムを撃退する方法

キャッシュを有効に活かすことはmod_rewriteでも処理可能ですから不要なモジュールを使用しないという意味においては積極的にmod_cmlを導入する理由もみつからなかったのですが、こんな使い方も考えてみました。

mod_cmlの目的はサーバ内で処理できるリクエストはサーバ内で処理しできるだけrubyなりphpなりのインタプリタを起動しないで負荷を減らし高速化しようというものです。それでちょっと前に悩まされていたトラックバックスパムの撃退に利用できないか思いついた訳なんです。現在、このブログでもdrupalのtrackback.moduleにスパム撃退のコードを埋め込んでいますが、結局phpは起動されているわけでこういう不毛な処理をサーバ側追い出すことができれば実にうれしい。早速トライしてみました。

Lighttpd+mod_cmlを考えてみました

ダイナミックコンテンツをうまく利用するためのモジュールとしてmod_cmlというものがあります。mongrelで紹介されていたのが気になって調べてみることにしました。

一口にキャッシュといってもその有り様はアプリケーションにより千差万別、様々な場面が想定されるわけLighty+mod_cmlではその多様性を組込型言語luaを使ってプログラミングします。

Lighttpdのmod_cmlを使用するにはまず、lualibmemcacheをインストールして--memchacheと--luaオプションを付加してLightyをリメイクします。

tar zxvf lua-5.1.1.tar.gz 
cd lua-5.1.1
make linux
make linux install
tar jxvf libmemcache-1.4.0.rc2.tar.bz2
cd libmemcache-1.4.0.rc2
./configure
make
make install
export LUA_CFLAGS='-I/usr/local/include'
export LUA_LIBS=/usr/local/lib/liblua.a
./configure --with-memcache --with-lua
chcon -c -v -R -u system_u -r object_r -t textrel_shlib_t \
 /usr/local/lib/mod_cml.so
コンテンツの配信