lighttpdを知っていますか?
lighttpdの特徴・機能
lighttpdは「Light footprint + httpd = Lighttpd」が語源で、その名の通り軽量であることが特徴です。
高性能が求められる環境での動作を前提とした設計で、少ないメモリ量でかつCPU負荷を抑えながらも、Webサーバーとして必要な機能は十分に持ち合わせています。
以下に、lighttpdの主な機能を列挙します。
1つ目がバーチャルホスト機能をサポートしていることです。そのため、1台のWebサーバーで、複数のドメインのWebサイトを運用させることが可能です。
2つ目がモジュール機構を採用していることで、必要に応じてモジュールを追加できるので、機能拡張が容易かつ柔軟に行えます。
3つ目がURLリライト、HTTPリダイレクトができることです。特定のURLを別のURLへ遷移させたり、URLの見栄えを置換(リライト)することで最適化することが可能です。Webサイトの移動時に使用したり、近年ではSEO対策にも利用されています。
4つ目がコンテンツの圧縮転送をサポートしていることです。配信するコンテンツを圧縮させることで、サーバーとクライアント間の転送量を削減することが可能となります。転送量がボトルネックとなるケースや、狭帯域の環境に対して有効に働きます。
5つ目が一般的なHTTPの認証であるBASIC、DIGEST認証をサポートしていることです。また認証のバックエンドとしてプレーンテキストやhtpasswd形式のほか、LDAPもサポートしています。
6つ目がFastCGI、CGI、SCGI、SSIといった外部プログラムのインターフェースをサポートしており、C、PHP、Perl、Ruby、Pythonなど各種言語を扱うことが可能です。
7つ目がHTTPを利用したファイル転送プロトコルであるWebDAVをサポートしていることです。WebDAVを利用したWebサーバーへのファイルアップロードなどが可能です。
このようにlighttpdは、Webサーバーとしての基本機能は十分持ち合わせていると言えるでしょう。
また、lighttpdの動作プラットホームは、RedHatやDebian、Fedora、SUSEなどを始めとした多くのLinuxディストリビューションをはじめ、Windows、BSD、Solarisなどでも稼働可能です。
インストール方法についても、ソースからコンパイルしてインストールするほか、多くのパッケージ管理システムにて、パッケージ化された状態で公開されているため、容易にインストールすることが可能です。
Apacheと比べてみると?
では、Apacheとlighttpdは何が違うのでしょうか。図2を見てください。前項で紹介した通り、lighttpdはWebサーバーとして必要となる機能は十分に持ち合わせており、それでいて軽量で高速です。しかし、Apacheには多くのユーザーを満足させるような豊富な機能と、サードパーティー製も含めた数多くの追加モジュールが存在します。
例えば、Apacheにもlighttpdにも、プロキシとして振る舞うことのできる「mod_proxy」と呼ばれる機能拡張モジュールが存在します。
lighttpdに付属するmod_proxyは、あくまでバックエンドの複数のサーバーに特定のアルゴリズムに応じてリクエストを振り分けるようなリバースプロキシの機能を持つシンプルな実装です。
それと比べ、Apacheに付属するmod_proxyはリバースプロキシだけでなく、フォワードプロキシとして利用することも可能です。しかもlighttpdのシンプルなリバースプロキシとは異なり、数十もの詳細な設定を行うことが可能です。特にロードバランス機能は状況に応じた細やかな設定が可能で、バックエンドのサーバー単位で重みを設定してアクセス頻度を調節したり、バックエンドのサーバーに障害が発生している場合はフェイルオーバーをハンドリングさせて、障害が発生しているサーバーへリクエストを送信しないようにするといったニーズに合わせた設定が可能です。
また、lighttpdではサポートしていない多くのプラットホームで稼働実績や連携する外部アプリケーションをサポートしていたりと、システムのWebサーバーへの要求事項によっては、lighttpdではなくApacheを選択せざるをえないこともあるでしょう。
しかし、Webサーバーとしてシンプルに利用する分には、lighttpdでも十分に機能しますし、環境や使い方によっては、少ないリソースで高いパフォーマンスを出すことも可能です。
どのような場合に、高いパフォーマンスが出せるかは、次回以降で検証していきます。
次は、Apacheとlighttpdの導入方法について紹介していきます。