Apacheを理解しWebサーバの実装・運用保守を行えるようになりましょう!
Apacheとは、Webサービスを提供するためのソフトウェアです。オープンソースのソフトウェアではありますが、Linuxと同様に多くに方々が開発やサポートを行っているため、信頼性が高く多くのWebサーバで利用されています。Apacheは機能が豊富にあるため全てを覚えることは難しいので、特に覚えておいた方がいい点をピックアップして記載したいと思います。
Apacheのインストール
Apacheのインストールは、パッケージを利用しない場合は「configure」の後に「make」と「make install」を使用します。なお、インストール時の設定を変更するにはconfigureのオプションを指定します。
例:Apacheのインストール先ディレクトリを指定したい場合
./configure –prefix=[指定したいディレクトリ]
Apacheの設定
Apacheの設定ファイルはhttpd.confです。格納先はインストール時の指定やディストリビューションにより異なります。httpd.confのディレクティブ構文は「[ディレクティブ名] [設定値]」となります。
なお、httpd.confのディレクティブには多くの種類がありますので、今回はWebサーバの接続処理に影響する主なディレクティブを紹介します。
ディレクティブ名 | 内容 |
---|---|
MaxClients 数 | クライアントが同時に接続できる最大数。この値を大きくすると同時に接続できるクライアント数が増えるが、スペックを越えた値にすると、アクセスが集中した際にパフォーマンスの低下や最悪サーバの停止を招く恐れがある。 |
StartServers 数 | 起動時に起動するサーバプロセス数。 |
MinSpareServers 数 | 待機しているサーバプロセスの最小値。 |
MaxspareServers 数 | 待機しているサーバプロセスの最大値。 |
Timeout 秒数 | リクエスト失敗までサーバが待つ時間。 |
KeepAlive on | off | 持続的な接続を可能にするかどうか。onかoffを指定。 |
MaxKeepAliveRequests 数 | KeepAliveの最大数。 |
KeepAliveTimeout 秒数 | 同じクライアントから次のリクエストが来るまでのタイムアウト時間。 |
Apacheのモジュールについて
Apacheには豊富なモジュールがあり、必要に応じてロードすることが可能です。主なモジュールについて、以下に紹介します。
モジュール名 | モジュール機能説明 |
---|---|
mod_actions | メディアタイプやリクエストメソッドに応じてCGIスクリプトを実行 |
mod_alias | ファイルシステム上の場所をドキュメントツリーにマッピングと、URLリダイレクトを行う |
mod_include | SSI機能 |
mod_auth | テキストファイルを用いたユーザー認証 |
mod_auth_digest | Digest認証 |
mod_authnz_ldap | LDAP認証 |
mod_cgi | CGIスクリプトの実行 |
mod_mine | 拡張子とファイルの実行を関連付け |
mod_dbd | SQLデータベースの接続を制御 |
mod_so | DSOモジュールをロード |
mod_proxy | プロキシ/ゲートウェイ機能 |
mod_ssl | SSL・TLSによる暗号化通信 |
mod_userdir | ユーザ専用ディレクトリ環境 |
mod_status | サーバ稼働状況に関する情報の提供 |
まとめ
Apacheだけに限った話ではありませんが、(Webサーバの)パフォーマンスを向上させるためには、サーバのスペックや用途に併せて設定ファイルの設定値を書き換えたり、不要なモジュールをロードしないようにしたり削除するといった最適化作業を行うことが重要になります。