NP_Blacklistを入れると動作が緩慢になってしまって困っている方もいると思います。これはページが表示される直前にアクセス元がブラックリストに載っていないかどうかDNSを使って問い合わせを行っているためで、PHPの時間制限が厳しいサーバの場合にはこの動作が致命的になる場合があります*1。
別にブラックリストに載っているIPからページを閲覧されてもかまわなくて、とりあえずspamトラックバックとコメントだけが弾ければOKと割り切ってしまうのであれば、ちょっとした改造でかなり体感速度を上げることができるので、その方法を記載しておきます。
† 改造方法
NP_Blacklist.php(112行目付近)のこの部分を
このように書き換えます。(※PreSkinPerseの部分を削除。)
書き換えが完了したら「プラグイン管理」から「登録リストのアップデート」を実行するか、NP_Blacklistをアンインストール後、もう一度インストールを行います。
この改造を行った場合、副作用としてEnable referrer based blocking?を「はい」に設定していてもリファラのチェックが行われなくなりますのでその点に注意してください。
† 根本的な解決に向けて
とりあえず、DNSBLを参照した結果について自前でキャッシュを行えば動作がかなり軽くできることがわかりました。
実装としてはファイルシステムを使ったものとeAcceleratorの共有メモリを使ったものの2種類を作ってみたんですがどちらでもかなり効果があります*2。共有メモリはサーバによって使える/使えないの差が激しいので、一般向けのリリースとしてはファイルシステムによるキャッシュを次のバージョン(jp8)から同梱する予定にしています。
コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。