www.serve.com という名のマシンを持っていると仮定します。普通はこれらのグループには www.serve.com のWebツリー上の一部が割り当てられます。結果、smallcoのホームページは次のようなURLになるでしょうし
http://www.serve.com/smallco/また、baygroupのホームページは次のようなURLになります。
http://www.serve.com/baygroup/
しかし、美的感覚からいえば、両組織とも自分達のホームページがサービスプロバイダの名前の後ろにくっついたかたちになって呼出されるより独自の名前で呼出される方がいいでしょう。;ところが彼ら組織は、インターネット接続やサーバのセットアップを自分達ではしたくありません。
バーチャルホストはこの問題への解決策です。smallco と baygroup は、それぞれ
www.smallco.com と www.baygroup.orgという独自の
インターネットに登録した名前を持っているとします。これらのホスト名は両方とも
サービスプロバイダのマシン(www.serve.com)に対応しています。
これで、smallcoのホームページは今、次のURLになり、
http://www.smallco.com/そして、baygroupはのホームページは、次のURLになります。
http://www.baygroup.org/
マルチデーモンを使うとき:
例.
BindAddress www.smallco.com
このホスト名はまたIPアドレスの代わりにもなります。
例.
<VirtualHost www.smallco.com>
ServerAdmin webmaster@mail.smallco.com
DocumentRoot /groups/smallco/www
ServerName www.smallco.com
ErrorLog /groups/smallco/logs/error_log
TransferLog /groups/smallco/logs/access_log
</VirtualHost>
<VirtualHost www.baygroup.org>
ServerAdmin webmaster@mail.baygroup.org
DocumentRoot /groups/baygroup/www
ServerName www.baygroup.org
ErrorLog /groups/baygroup/logs/error_log
TransferLog /groups/baygroup/logs/access_log
</VirtualHost>
このバーチャルホスト名はまたIPアドレスの代わりにもなります。
ServerType, User, Group, StartServers, MaxSpareServers, MinSpareServers, MaxRequestsPerChild, BindAddress, PidFile, TypesConfig と ServerRoot を除いて、ほとんどのコンフィグレーション指定をバーチャルホスト設定欄に書けます。
セキュリティ: どこにログファイルを書くかを記述するときは、もしもApacheをスタートさせたユーザー以外のだれかが、それらが書かれたディレクトリへの書き込みアクセスを行ったときに表出するいくつかのセキュリティ上の危険に注意すべきです。 詳細はセキュリティ情報(security tips)を見てください。
Apacheは要求時に制限数を増やすことを試みますが、次の場合にはそのようには働きません。:
#!/bin/sh
ulimit -S -n 100
exec httpd
cshスクリプトラッパーで"rlimit" を 512のような大きい数にセットします。
struct rlimit rlp;
rlp.rlim_cur = rlp.rlim_max = 512;
if (setrlimit(RLIMIT_NPROC, &rlp)) {
fprintf(stderr, "setrlimit(RLIMIT_NPROC) failed.\n");
exit(1);
}
("Aaron Gifford <agifford@InfoWest.COM>" のパッチに感謝します。)