編集部ピックアップ

ゴルフお悩み相談箱
ゴルフお悩み相談箱

コースでのナイスプレーには正しい知識と練習が必須!飛ばない、曲がる、ゴルフの悩みを解決

気になるキーワード

検索語キーワードランキング

1位:
up
2位:
up
3位:
keep

PR

バーチャルホスト

例: 紅葉 行楽

検索オプション 質問する

質問

質問者:pakipaki07 バーチャルホスト
困り度:
  • 困っています
現在 Windows2000とan httpdで
自宅にwebサーバーを立てています。
一つの非固定グローバルIPアドレスでドメインを二つ取得し
バーチャルホストで同一サーバーに二つ(仮にAとB)HPを持っているのですが(NICは一つです)
二つ気になることがあります。

まず、同一のLAN内のクライアントマシンから
このサーバーのローカルIPでアクセスした場合
現時点ではAのHPが表示されます。これを、BのHPが表示されるように
するには、ルーターでどのような設定をすればよいんでしょうか?

もう一つは、サーバーマシンで​http://127.0.0.1/​と入力して
アクセスしてみても、何も表示されないんですが
これはバーチャルホストで、同一サーバー内に二つのHPを持っている
ために起こる現象なのでしょうか?(普通自分のサーバー内のhpが表示されますよね?)
たいしたことではないのですが、ふと気になりました。
よろしくお願いします。
質問投稿日時:07/09/02 00:13
質問番号:3307513
この質問に対する回答は締め切られました。
最新から表示回答順に表示良回答のみ表示

回答

良回答20pt

回答者:kalze 今回の件はルータは関係ないです。

>するには、ルーターでどのような設定をすればよいんでしょうか?

これはローカルIPアドレスで直接アクセスした場合ですよね?
であれば、anhttpdのバーチャルホストのところで、AとBを定義しているとおもいますが、その順番を逆にしてください。
たぶん今はA→Bの順番になっているとおもうので、B→Aの順番に。
どのバーチャルホスト宛のアクセスか分からない場合は、最初に定義されているものが適用されます。

今回はネームベースのバーチャルホストなので、IPアドレスでアクセスされるとネーム(つまりドメイン)が取得できないので、デフォルトのものが使用されるということになります。

>アクセスしてみても、何も表示されないんですが

これは127.0.0.1では待ち受けていないためと思われます。
バーチャルホストの設定のIPアドレスのところで、現在はサーバマシンに割り当てられているローカルIPアドレスが設定されているのではないでしょうか?
(例えば、192.168.0.10とか)
そのため、そのIPアドレス宛でないといけなくなっています。
この部分を*.*.*.*とすることで、すべてのIPアドレスで待ち受けますので、127.0.0.1でもアクセスできるようになります。


一応他の方の回答について補足させてもらうと、
#1の方の書かれている、
>ルータで振り分ける為にはルータ側で「リクエスト」を解析して振り分けをしなければならない。
については、今回はネームベースのヴァーチャルホストなので、httpサーバがやることになります。

#2の方の
>ドメインURLをDNSに問い合わせた際に、グローバルIPを返しますが、
>それがルーターの外側のIPのため、内部ネットワークへ戻す処理ができないことに由来します。

については、そういう機能のないルータとそういう機能のあるルータが存在します。
安いいわゆるブロードバンドルータでも機能のあるものは存在します。
(現状、どちらが一般的かわかりませんが)
種類:回答
どんな人:一般人
自信:参考意見
回答日時:07/09/02 06:18
回答番号:No.3
この回答へのお礼この回答にお礼をつける(質問者のみ)

回答

 

回答者:Lucky357 結論から申し上げますと、ルーターの設定では解決しません。
ローカルネットワークのパソコンそれぞれ1台ずつ(サーバーマシンを除く)に、次のように設定してください。(ファイルのコピーも可)
1.「スタート」→「検索」→「ファイルやフォルダ」で”hosts”を検索する
2.C:WINNT\system32\drivers\etc内にある”hosts”を右クリックし、「アプリケーションから開く」を選択して、左クリックし、アプリケーションはメモ帳を選択する。
3.開いたら、左側の#がある最終行の下に追加で記述します。
(TAB)192.168.xxx.xxx(TAB)ドメインA(具体的にxxx.comなど入力)
(TAB)192.168.xxx.xxx(TAB)ドメインB(具体的にxxx.jpなど入力)
※1.(TAB)はTABキーを押すとできるスペースです。
※2.192.168.xxx.xxxは、実際にサーバーマシンとして使用しているPCのIPを入力してください。
4.”hosts”ファイルを上書き保存をして閉じます。

※この作業を行う場合、必ず書き換え前の”hosts”ファイルのバックアップを取り、不具合が出たら、戻してください。

以上の作業で、ローカルマシンからドメインのURLでそれぞれが表示されます。(様は、DNSに頼らず、強制的にIPを指定してやるわけです。そうすると、ローカルマシンからのアクセスも、ドメインごとのリファラを正しく拾って表示してくれます)
サーバーマシンの場合、上記の作業のうち、192.168.xxx.xxxのところを、127.0.0.1に変えて記述してやれば、見るとこができます。

>これはバーチャルホストで、同一サーバー内に二つのHPを持っている
>ために起こる現象なのでしょうか?(普通自分のサーバー内のhpが表示されますよね?)
an httpdの仕様のような気もしますが、通常最初に登録したHPのみが見られると思います。
1つ考えられるのは、サーバーPCの”hosts”ファイルに何かおかしな記述が入っているかもしれません。

理由は、ドメインURLをDNSに問い合わせた際に、グローバルIPを返しますが、それがルーターの外側のIPのため、内部ネットワークへ戻す処理ができないことに由来します。

ですから、この設定を行ったとしても、サーバーマシンの動作確認はできますが、外部から正しくアクセスできるかどうかの根拠にはなりません。

サーバーが正しく外部から見えるかどうかは、参考URLの様なサイトを利用すると良いでしょう。
種類:回答
どんな人:経験者
自信:自信あり
回答日時:07/09/02 03:38
回答番号:No.2
参考URL: http://www.aconus.com/~oyaji/www_tst/www_tst.htm
この回答へのお礼この回答にお礼をつける(質問者のみ)

回答

 

回答者:noname#39970 ルータで振り分ける為にはルータ側で「リクエスト」を解析して振り分けをしなければならない。
具体的にはAでリクエストされたらA、BでリクエストされたらBへ
127.0.0.1で反応しないのはサーバソフトが127.0.0.1で受け付けるように設定されてないだけ。
種類:アドバイス
どんな人:一般人
自信:参考意見
回答日時:07/09/02 00:59
回答番号:No.1
この回答へのお礼この回答にお礼をつける(質問者のみ)
最新から表示回答順に表示良回答のみ表示

この質問に関連するQ&A

[PR] お役立ち情報