読者です 読者をやめる 読者になる 読者になる

破棄されたブログ

このブログは破棄されました。

Debian における Apache のバーチャルホストの優先度について

Apache Web サーバへ IP でアクセスした際、条件にマッチするバーチャルホストが複数あると、一番最初に読み込まれたバーチャルホストが呼び出される。また、Debian での Apache のバーチャルホスト設定ファイルは、ファイル名順に読み込まれる。なので、IP アドレスでアクセスされた際に呼び出されるバーチャルホストを指定したいときは、設定ファイル名で順序を明示化するひつようがある。バッドノウハウじゃねこれ。

バーチャルホスト呼び出し順の設定

/etc/apache2/sites-available
|-- mysite_alpha_secondary <= IP アドレスでアクセスするとこちらが呼び出される
`-- mysite_bravo_primary

バーチャルホストがファイル名順で呼び出されることから、IP アドレスでアクセスした場合、呼び出されるバーチャルホストは、mysite_alpha_secondary になる。

一旦バーチャルホスト設定を無効化して、sites-enable からシンボリックが消えたことを確認する。たぶん、reload しないと設定は反映されないので、 a2dissite しただけであればサイトへのアクセスはできると思う。

a2dissite mysite_alpha_secondary
a2dissite mysite_bravo_primary
ls /etc/apache2/sites-enable

mysite_bravo_primary を呼び出させるには、こういうかんじで設定ファイル名に接頭辞をつけることで順序付けしてやる。

/etc/apache2/sites-available
|-- 000-mysite_bravo_primary <= IP アドレスでアクセスするとこちらが呼び出される
`-- 001-mysite_alpha_secondary 

あとは a2ensite と service apache2 reload を忘れずに。

広告を非表示にする