バーチャルドメイン

一つのサーバー(一つのIPアドレス)で複数のドメイン,ホスト名のホームページやメールアドレスを使う方法として,バーチャルドメインがある。現在のコンピュータの能力からすれば一台のサーバーでかなりの多くのドメインの扱いが可能である。バーチャルドメインの活用により,コンピュータの資源,さらにIPアドレスの資源を有効に利用することができる。バーチャルドメインはサーバー管理の基本技術と言えるだろう。
現在本サイトでもこれを利用していて,一つのサーバーで,4つのドメインを使っている。バーチャルドメインの実装方法については,明確な規則が無いらしく,各ソフトウエアがそれぞれの工夫でバーチャルドメインを実現している。CentOS8,Oracle Linux 8.3をインストールした経験では,バーチャルドメインの取り扱いには,次の3つのパターンがある。(以下の記述は,本サーバーにインストールした方法による一応の分類であり,設定の仕方によっては異なる。)

  1. リアルドメインとバーチャルドメインを明確に区別をする。
  2. リアルドメインとバーチャルドメインを同じに扱う。
  3. リアルドメインとバーチャルドメインを大体同じに扱う。

postfix

postfixのバーチャルドメインの扱いは,タイプ1と言える。/etc/postfix/main.cf の中で,

hostname
mydomain
myorigin
mydestination

を設定するが,これはいずれもリアルドメイン,リアルホスト名周辺の名前である。更にバーチャルドメインについては,

virtual_alias_domains

で設定する。この名前は,リアルでなく,バーチャルなドメイン名のみを設定する。postfixの説明では,「バーチャル エイリアスドメイン名を mydestination ドメインには「絶対に」リストアップしないでください。」とある。(但し,mydestination ドメインに追加ドメインを設定する方法もある。しかし,この方法はここで想定するバーチャルドメインとは異なる。)実際にバーチャルの具体的設定は /etc/postfix/virtual ファイルに記述する。postfixの説明の中には,「バーチャル***は,×××に「絶対に」・・・しないでください。」という記述が多くみられる。バーチャルの設定はかなり慎重にする必要がある。

mailman

メーリングリストソフトmailmanは,バーチャルドメインに対応していて,一つのサーバー上で各バーチャルドメイン宛てのメールイングリストを作成・運営することができる。mailmanの設定は,/etc/mailman/mm_cfg.pyで行う。そこでの方法を見ると,mailmanはタイプ2の扱いをしていると考えられる。

POSTFIX_STYLE_VIRTUAL_DOMAINS
DEFAULT_URL_HOST
DEFAULT_EMAIL_HOST

が既定の変数で,POSTFIX_STYLE_VIRTUAL_DOMAINSには,(あえてpostfix形式でのと断っている)バーチャルドメインのリストを設定する。DEFAULT_URL_HOSTにはリアルホスト名を設定する。これ以外に,バーチャルホストの名前の変数を設定して(例えば,V1_URL_HOST,V1_EMAIL_HOSTのように。),

add_virtualhost(DEFAULT_URL_HOST, DEFAULT_EMAIL_HOST)
add_virtualhost(V1_URL_HOST, V2_EMAIL_HOST)
・・・

のように,バーチャルホストを順次設定する。即ち,ここでのリアルホスト名は,最初のバーチャルホストの扱いになっている。つまり,すべてホストはバーチャルとして扱うと言える。

apache

apacheのバーチャルドメインの取り扱いは,タイプ3と言える。/etc/httpd/conf/httpd.conf の中で,

ServerName

で,リアルホスト名を設定する。この名前がデフォルトのサーバーとなる。バーチャルドメインホストは/etc/httpd/conf.dの中で,各ホスト名vhostname(仮の名前)に対応する,

vhostname.conf

を置く。このconf はバーチャルホストに対応していくつでも置くことができる。このそれぞれのconfファイルに,それぞれのDocumentRootや各ディレクトリのアクセス関係を記述する。この,conf.dのconfファイルの中に,リアルホスト名のconfファイルを置いてもよい。httpd.confは全体の基本設定をして,各ホスト名についての細かい設定は,このconf.dにあるconfファイルで可能である。そして,リアル,バーチャルにかかわらず,すべてのホスト名がここで,平等に設定可能である。(勿論,このディレクトリにあるconfファイルは,実際は,httpd.conf に読み込まれるものであるので,httpd.confで同様な設定をしても良いことになる。)

wordpress,simple machines forum

これらのソフトは,webでのアクセスで動作し,各webページにインストールすれば,バーチャルホストごとの運用が可能である。即ち,バーチャルとリアルの区別はなく,タイプ2と言える。

このように,各ソフトによって扱いは異なるが,バーチャルドメインでの運用が基本的に可能となっている

但し,バーチャルの考え方は,ソフトによって微妙に異なるので,インストールの際はよく注意して設定をする必要がある。