Apache 設定ガイド
Apacheは、UNIXサーバ上で動作するWebサーバプログラムです。
サーバにApacheを導入することで、簡単にWWWサーバを構築することが可能です。
現在Apacheには、1.x系と2.x系の2種類のバージョンが存在しております。
弊社で提供しておりますApacheの設定ファイルのパスです。
設定ファイルのパス
FreeBSD | /usr/local/etc/apache/httpd.conf |
---|---|
RedHat Linux / Fedora Core / CentOS | /etc/httpd/conf/httpd.conf |
Debian Linux | /etc/apache/conf/httpd.conf |
httpd.conf 項目別設定
ServerType standalone
Apacheの起動モードの設定です。通常ではstandaloneに設定されています。
常に起動して待ちうける状態となります。
ServerRoot
apacheがインストールされている場所を指定します。通常では変更の必要はありません。
Pidfile
apacheのプロセスIDが収められている場所を指定します。通常は変更の必要はありません。
ScoreBoardFile
スコアボードのファイルが置いてある場所です。
TimeOut
送信する際の処理ごと(CGIの実行や応答処理など)のタイムアウト時間(秒)です。通常では300秒程度に設定してあります。
KeepAlive On
KeepAlive機能を利用するとクライアントから数回にわたる接続要求が来たとき、接続を切断することなく処理を行うことができ、再接続による遅延を最小限におさえることが可能になります。Onにした場合の詳細は、以下のMaxKeepAliveRequest・MinSpareServers・KeepAliveTimeoutで設定します。
MaxKeepAliveRequest
一回の接続で処理できる回数です。通常は100程度で設定してありますが、負荷が大きいようなら下げることをお勧めします。
KeepAliveTimeout
KeepAliveの稼動時の要求を待ち受ける最大時間を秒数で指定できます。余りに大きく数値を設定すると、次に接続をしたい人が接続できない状況が発生するかもしれませんが、小さくしすぎると接続回転率は上がりますが回線をつなげるストレスがたまるかもしれません。通常はデフォルトのままで設定し、場合によって変更するのが良いでしょう。
MinSpareServers MaxSpareServers
apacheはここで指定された数だけは 常に待機する子サーバを稼動させます。MinSpareServersの数より少なくなると待機子サーバが一秒に1プロセスずつ新しく起動されます。MaxSpareServersで設定された数は、稼動しつづけてもかまわない子サーバの最大数です。通常はMinは5程度、Maxは10程度に設定されていますが、余りに大きく数値を設定するとサーバに多くの負担がかかりますので様子を見ながら変更することをお勧めします。
StartServers
初回起動時の子サーバの数です。しかし、このサーバ数は動的に制御されますので(MaxSparServers参照)起動時のサーバの数を調節をしても余り意味はありません。通常はデフォルトのままでかまいません。
MaxClients
最大接続数を指定します。この数を越えるリクエストは待たされることになります。普段からサーバが重い場合はこの数をへらして、接続する一人一人の負担をへらしてみるとよいでしょう。
MaxRequestsPerChild
apacheの子サーバはここで指定された数のリクエストを処理し終えると、消滅します。0に設定すると休まずに稼動しつづけることを意味します。子サーバに処理をさせつづけると、異常動作を起こしたりすることがあります。それを避けるためにも、必ずこの設定はするようにしましょう。
Port
接続を待ち受けるポート番号を指定します。HTTPでは通常80番ポートを使用しますので、特に変更の必要はありません。
User Group
apacheの実効ユーザIDとグループIDを指定します。通常は nobody / nobody で設定していますが、複数名でサーバを使用する場合はセキュリティ上の問題から、特定のユーザおよびグループを設定した方がよいでしょう。
ServerAdmin
サーバ管理者のEmailアドレスを指定します。クライアントがサーバへ接続する際にエラーが-起こったとき(NotFoundなど)のエラーメッセージに記載されるEmailアドレスですので、「Webmaster@あなたのドメイン名」などの名前にしておくと良いでしょう。
ServerName
名前解決が行えるホスト名、もしくはIPアドレスを指定します。
DocumentRoot
HTMLなどのファイルを置く場所(ディレクトリ)です。「http://****/ 」でアクセスされたときファイルにアクセスします。
<Directory ディレクトリ名> ~ </Directory>
指定した任意のディレクトリ、またはそのディレクトリ以下に対して特別な命令を埋め込むことができます。
バーチャルホスト設定
Apacheのバーチャルホストとは、複数のドメインで一つのサーバを共有して利用することを可能にします。
ドメイン名ベース
example.co.jpという名前を持つサーバに対して一つのIPアドレスが割り当てられているとします。そして、そのIPに対し二つのドメイン名 www.example.co.jpと www.sub.example.co.jpを持っており、ドメイン名毎に違うページを表示したい場合の設定を行ってみます。
ドメイン名ベースのバーチャルホストを使うには、そのホストへの リクエストを受け付けるサーバの IP アドレス(もしかしたらポートも) を指定する必要があります。これは NameVirtualHost ディレクティブで設定します。
<VirtualHost 割り当てられたIPアドレスを入れてください。>
DocumentRoot /home/htdocs/
ServerName www.example.co.jp
ErrorLog /usr/local/apache/logs/error_log
CustomLog /usr/local/apache/logs/access_log
</VirtualHost>
<VirtualHost 割り当てられたIPアドレスを入れてください。>
DocumentRoot /home/sakura/
ServerName www.sub.example.co.jp
ErrorLog /usr/local/apache/logs/error_log
CustomLog /usr/local/apache/logs/access_log
</VirtualHost>
IPアドレスベース
www.example.co.jp と www.sub.example.co.jp というホスト名を持っており、www.example.co.jp には 192.168.0.1を、www.sub.example.co.jp には 192.168.0.2 を割り当てます。
<VirtualHost 192.168.0.1>
DocumentRoot /home/htdocs/
ServerName www.example.co.jp
ErrorLog /usr/local/apache/logs/error_log
CustomLog /usr/local/apache/logs/access_log
</VirtualHost>
<VirtualHost 192.168.0.2>
DocumentRoot /home/sakura/
ServerName www.sub.example.co.jp
ErrorLog /usr/local/apache/logs/error_log
CustomLog /usr/local/apache/logs/access_log
</VirtualHost>
※ バーチャルホストを設定する場合、サーバ本来のドメインについてもバーチャルホストの記述を設定して頂く必要がございます。
Apache FAQ
index.htmlを置いていないとディレクトリ構造が丸見えになってしまう
Optionsに Indexes と指定しますと、ディレクトリ構造を表示します。httpd.confの部分からIndexesを削除します。
<Directory>
Options Indexes
AllowOverride None
</Directory>