モジュールの記事一覧

機能拡張モジュールの種類

Apacheには多くの機能がモジュールという単位で組み込まれています。機能をモジュール化することで、さまざまな機能を柔軟に選択することができます。

モジュールは、CGIやSSIが実行できるようにするもの、ドキュメントルートとして指定されたディレクトリ外のファイルを公開するためのエイリアスを設定するもの、プロキシサーバーとして動作させるためのものなど、豊富にあります。

モジュールの種類

ここではそれらモジュールのうち、代表的なものを紹介します。

モジュール 機能概要
mod_deflate サーバーから送信するデータを自動的に圧縮する。圧縮データを受け取ったWebブラウザは、ヘッダー情報から判断して自動的にデータを復元する。
mod_php ApacheにPHPの機能を組み込んで利用できるようにする。
mod_cache スクリプト言語やCGIなどで生成される動的ページをキャッシュする。
mod_proxy Apacheをリバースプロキシとして利用できるようにする。
mod_rewrite アクセスURLを正規表現により別のURLへリダイレクトする。
mod_security ApacheにWebアプリケーションファイアウォールの機能を追加する。

ここで紹介したのは一部に過ぎず、Apacheで利用できるモジュールは他にもたくさんあります。また、すでに公開されているモジュールに目的のものが見つからなかったら、自分で独自のモジュールを作成することもできます。

2015年11月06日(金)|Apache2.2構築

Apacheの構造

ApacheはWebサーバーとして低コストで高いパフォーマンスを発揮するとともに、多くの機能を備えています。

Webサーバーに求められる機能は、HTML文書や画像などの情報を配信するといった基本的なものだけではありません。圧縮転送や、認証機能、プロキシサーバーやファイルサーバーなど、多く機能が求められています。

ただ、それらの機能を全て一度に使うケースは少ないでしょう。ある要件では必要な機能も、別の要件では不要であり、無駄になってしまいます。その無駄な部分を使わないのに、使える状態にしておくと、必然的に起動にかかるコストや必要なメモリーなどが増え、サーバーリソースを消費してしまいます。

特に、Webサーバーは不特定多数のクライアントからの要求に応える必要があり、そのためにより多くのプロセスやスレッドを立ち上げます。そのため、プログラムサイズが少しでも大きくなると、プロセスの多重起動により、消費するサーバリソースは肥大化してしまいます。

そこでApacheは、必要最低限な機能だけをコアに据え、残りは選択可能とするモジュール構造を採用しています。モジュールとは、ある機能を実現するためのソフトウェアで、プログラム本体に組み込んだり、交換することが可能な小さなプログラムのことです。

また、 プラットフォーム(環境やOSによる機能や実装の違い)に依存するコア機能の部分もモジュール化され、プラットフォームに応じて最適なものを選択することが可能となっています。

サーバーデーモンの実行部分(コア機能)を司るモジュールをMPM(マルチプロセッシングモジュール)と言います。MPMは各プラットフォームに最適化されているため、パフォーマンスを最大限に発揮することができます。

以降、2種類のモジュールを混合しないように、マルチプロセッシングモジュールを「MPM」、一般的な機能拡張モジュールを単に「モジュール」と記載します。

Apacheの構造

このようなモジュール構成となっているため、必要な機能を取捨選択して、適材適所なApacheを構成することが可能となります。

静的モジュールとDSOモジュール

Apacheの多くの機能はモジュールによって実現されます。モジュールはApacheの設定ファイルを編集することで、簡単に有効/無効を切り替えることができます。

モジュールをApacheに追加する方法として、Apacheをビルドするときに実行ファイルの中にモジュールを組み込んでしまう方法と、モジュールを単独ファイルとして作成し、Apacheの起動時に動的に追加する方法の2種類があります。前者を静的モジュール、後者をDSO(Dynamic Shared Object)モジュールと言います。

ビルド時にApache実行ファイルに組み込んだモジュールは、Apacheと密接な連携をとることができるため、起動時に動的に追加するモジュールよりも高速に動作します。ただし、一度組み込んだモジュールは再びビルドし直すまで外すことができません。

Apacheにロードされているモジュールの一覧は「httpd -M」コマンドで確認できます。

# httpd -M
Loaded Modules:
 core_module (static)
 mpm_prefork_module (static)
 http_module (static)
 so_module (static)

~ 省略 ~

 suexec_module (shared)
 disk_cache_module (shared)
 cgi_module (shared)
 version_module (shared)
 dnssd_module (shared)
 ssl_module (shared)
Syntax OK

静的に組み込まれている場合は「static」、DSOで動的に組み込まれている場合は「shared」と表示されます。

2015年11月04日(水)|Apache2.2構築

サイト内検索

カテゴリー

  • Apache2.2構築
  • BIND DNSサーバー構築
  • Linux基礎知識
  • NTPサーバー構築
  • vsftpd FTPサーバー構築

サイト情報

  • 当サイトについて
  • 免責
  • お問い合わせフォーム
  1. CentOSサーバー構築入門
  2. モジュールの記事一覧

CentOSサーバー構築入門

CentOSによるサーバー構築方法をわかりやすく解説しています。
  • 特定商取引法に基づく表示
  • 運営者情報
  • お問い合わせ
  • サイトマップ
  • twitter
  • facebook
  • Google +1
  • RSS
Copyright ©2025 CentOSサーバー構築入門 All Rights Reserved.

[↑]このページの先頭へ