【レポート】

オープンソースカンファレンス2005 - 今楽しみなApache 2.1

1 はやわかり Apache

    千葉俊洋  [2005/03/29]

    Open Source Conferenceはその名の通り、オープンソースソフトウェアに関する企業やコミュニティが集まるお祭りである。筆者はそのなかで、

    • はやわかり Apache 1.3/2.0/2.1
    • Linuxベンチマーク評価とボトルネック
    に出席してきたので、それらについて簡単にレポートしたいと思う。

    はやわかりApache HTTP Server 1.3,2.0,2.1

    最初に、興味を持つ方が多いと思われるApacheのセミナーについてお届けしよう。

    このセミナーでは、Apacheの管理者向けにApacheの各バージョンがどのようになっているのか、あるいはなるのかを紹介するものだ。来場者もかなり多く、その影響力を伺い知ることもできた。

    まずは、Apacheの歴史の簡単な紹介から始まった。1994年中頃に、その当時の2大メジャーHTTPサーバであったNCSA httpdの主要開発者が去り、困った何人かの利用者たちがコミュニティを作り、持ち寄ったパッチを使ってNCSA httpdバージョン1.3を修正・強化したものを、Apacheとして1995年に正式リリースする。それから今日まで既に10年が経ち、10周年を迎えることとなったわけだ。

    次いで、2.0についての説明が続けられた。ご存じのように、Apacheの最新安定版のバージョンは2.0.53であり、これは2.0系と総称されるもののひとつ。2.0が最初にリリースされたのは2002年であり、すでに2年以上続いているのだが、改めて2.0の新機能を知ろうということだ。サーバ管理者が注目すべきもの、開発者が気にすればよいもの、あまり知られていないが重要なもの、に分けて紹介されたので、それぞれを見ていこう。

    ユーザが注目すべきもの

    • クライアントとの通信にpreforkの他にマルチスレッドをサポートした
    • mod_sslとmod_davが標準モジュールとして取り込まれた
    • Auto Indexがカスタマイズしやすくなった
    • 一部のモジュールがInput & Output Filterとなり、入力前・出力後にデータを加工できるようになった
    • SSIの機能拡張が行われた

    開発者が気にすればよいもの

    • APR(Apache Portable Runtime)と呼ばれるライブラリによって、プラットホームに依存しないモジュールを作成できるようになった
    • MPM(Multi Processing Module)を使って、クライアントとの通信処理方法を選択できるようになった。従来はマルチプロセスのみを固定で利用していたのだが、マルチスレッドも利用できるようになった
    • マルチプロトコル対応で、例えばFTPを喋るモジュールなどを使ってFTPサーバとして動作することが可能になった
    • GNU Autotoolsを使って、他のソフトウェアと同様のビルドが行えるようになり、Apache独自のルールを覚える必要が無くなった

    あまり知られていないが重要なもの

    • 構造の変化により、再コンパイルしなくてもディレクティブで変更できるパラメータが増えた
    • 正規表現がPerl5.0互換となり、より複雑な文字列パターンを表現できるようになった
    • モジュールやコア部分を通るデータが必要ない処理を迂回できるようして、高速化を図った
    • 2GBを超えるサイズのファイルをサポートした
    • Apache module APIの刷新により、1.3系向けに開発されたモジュールが利用できない

    高速化の点については、グラフを使った説明も行われた。Linuxでの秒間リクエスト処理数は、単純な静的ファイルの送信であれば1.1倍程度、Content Negotiation(ブラウザの指定言語によって、送信するファイルを変更する機能。Apache.orgのドキュメントページでも利用されている)を使った場合は3倍程度まで向上するそうだ。

    これだけでも1.3を止めて2.0を使う理由になりそうなものだが、実際のところは利用中のWebアプリケーションが2.0系で動作保証されていない、必要とするサードパーティモジュールが2.0に対応していない、特に2.0にしなくても支障がない、などの理由で1.3に踏みとどまってしまうことも少なくないようだ。しかし、そろそろ2.0に移行した方が良いという発言もあった。1.3系は既にメンテナンスリリースのみとなっていて、いつまで続くかロードマップも示されていない状態であり、メーリングリストでも話にほとんど上ってこないらしいので、よほどの理由がない限り、そろそろ2.0への移行を本気で考えた方が良いということだ。

    なお、次期メジャーバージョンとなる2.2(開発バージョンは2.1。2.x系からはLinux kernelと同じように、.xが奇数だと開発バージョン、偶数だと安定バージョンと番号が割り振られる)に関する情報も語られた。

    • 動的ファイルのキャッシュ機能が追加される。これにより、Webアプリケーションを使ったサイトのレスポンスが向上する
    • mod_proxyの機能拡張により、Apache JServ Protocol v1.3のサポートが加わるので、mod_jkはこちらに吸収されることになる。また、プロキシのロードバランスが行えるようになる
    • 認証/承認モジュールが分離され、それぞれを別に切り替えることができるため、より柔軟な認証機構を採用できるようになる
    • Output Filterの柔軟性が向上する。例えば、コンテンツタイプによって処理させるOutput Filterを変更する、というようなことができるようになる

    よりエンタープライズ向けの機能が強化・追加されていくという方向性が見えたわけだが、残念ながら正式リリースがいつになるかという点が一切不明なため、これを試すまでにはまだまだ時間が必要とのこと。3/15に2.1.4-alphaがリリースされているが、開発版のアルファバージョンであるため、我々一般ユーザが触れられるようなものではないだろう。

    新着記事

    特設サイトの情報

      人気記事

      一覧

        イチオシ記事

        新着記事

        特別企画

        マイナビニュースマガジン