- PR -

Apacheでのバーチャルホストの設定と逆引き

1
投稿者投稿内容
numao
常連さん
会議室デビュー日: 2007/01/28
投稿数: 28
お住まい・勤務地: 東京
投稿日時: 2007-05-03 16:49
 お世話になっております。
 Apacheでのバーチャルホストの設定とメインホストの設定でわからないことがありましたので書き込みします。
 現在FC5でApacheを使っています。通常のデフォルトの設定では/var/www/htmlがメインホストのディレクトリになっていると思うのですが、ドメインでアクセスする際には問題がないのですが、IPアドレスを直接入力すると、メインのホストではなくユーザーアカウントの一人のディレクトリ(/home/user/public_html)につながってしまいます。

http://main.example.com →/var/www/html
http://xxx.xxx.xxx.xxx (IPアドレスを入力すると…)→/home/user/public_html (sub.example.com)
と、なってしまいます。
http://main.example.com →/var/www/html
http://xxx.xxx.xxx.xxx →/var/www/html (http://main.example.com)
と、なってほしいのです。


 このユーザーはバーチャルドメインでサブドメインを設定しているので、逆引きでこのユーザーアカウントへのエイリアスなんかは特別設定していません。
 IPアドレスはグローバルです。

 もしかしたらDNSサーバー(bind)の設定がおかしいのかもしれないですが、ここら辺りの設定は何もいじっていないので、デフォルトのままだと思うのですが、通常デフォルトのままだとIPアドレスとメインのホストというのはメインホスト←→IPアドレスという風にならないのでしょうか?

 わかる方がいましたらおしえてください。
shimix
ぬし
会議室デビュー日: 2004/08/05
投稿数: 512
お住まい・勤務地: 大分市
投稿日時: 2007-05-03 16:58
こちら(http://www.atmarkit.co.jp/flinux/rensai/apache08/apache08b.html)によると、
引用:

編注2:ところで、NAMEベースのバーチャルホストを構築しているサイトに、IPアドレスでアクセスしたらどうなるだろうか? 答えは、「最初に記述されたブロックの設定が使われる」である。つまり、上記の例の場合はwwwというホストとして処理されるのである。バーチャルホストを構築する場合は、デフォルトとして機能するホストを最初に記述するようにしよう。


ということですが、設定順序はどうなっていますか?
numao
常連さん
会議室デビュー日: 2007/01/28
投稿数: 28
お住まい・勤務地: 東京
投稿日時: 2007-05-03 17:53
どんぴしゃりな回答ありがとうございます。
実にそういうことだったんですね。
バーチャルホストで一番最初に記述した設定したアカウントが、それでした。

いやはや、そうなんですね。
早速設定を変えてみます。
ありがとうございました!!
numao
常連さん
会議室デビュー日: 2007/01/28
投稿数: 28
お住まい・勤務地: 東京
投稿日時: 2007-05-10 22:20
 意味はわかったのですが、実際に設定してみたところ、またもやつまずいてしまいました。「最初に記述されたブロックの設定が使われる」という意味は、バーチャルホストを設定する為のファイル(僕の場合は、virtualhost.confとして別ファイルに設定しています。通常httpd.confの最終行辺りに書き込むことが多いと思います。)に書き込んでいますが、そのバーチャルホストの設定をブロックと理解してよいのでしょうか?

 実際に設定を見てみたところ、一番最初に設定したバーチャルホストのブロックとIPの関係がありませんでした。途中で設定したバーチャルホストに殆ど無作為にリンクされている状態です。ユーザーもバーチャルホストも自分の勉強用(実験用)に数個だけ最初に設定しました。
 この設定の順番というのは、実際の設定の順番なのか、あるいはファイルの書き込む順序なのかちょっとわからなくなりました。
 申し訳ありませんが、もう少し詳しくお話を聞きたいと思います。よろしくお願いします。
SHR
ベテラン
会議室デビュー日: 2006/06/15
投稿数: 99
投稿日時: 2007-05-11 08:16
httpd.confに記載されている中で一番最初です。
従って外部のファイルに設定を記載しているのであれば、
恐らくhttpd.conf内に"Include conf/virtualhost.conf"という記載がされていると思うので
それよりも前に記載があれば、そちらが優先されます。
当然、他にIncludeしている場合 かつ そちらにVirtualHostの記載があれば、
そちらが優先されます。
1

スキルアップ/キャリアアップ(JOB@IT)