No.13048 投稿時間:2003年10月23日(Thu) 22:20 投稿者名:マーゲン URL:
FreeBSD4.7RELEASEをインストールし、apache1.3.27を入れてWebサーバーを立てました。
しかし、80番ポートはすでに第一サーバーが使っているので8080番ポートにしました。
そこで質問なのですが、第一サーバーのURLが http://www.test1.com/ だったとしたら
:80 を付けなくても80番ポートに転送されますよね?
それを第二サーバーでは http://www.test2.com:8080/ とわざわざポート番号も付けなくてはなりませんが
http://www.test2.com/ とアクセスしたときでも自動で8080番ポートに転送するようにはできませんか?
No.13051 投稿時間:2003年10月23日(Thu) 23:30 投稿者名:通行人 URL:
> しかし、80番ポートはすでに第一サーバーが使っているので8080番ポートにしました。
> そこで質問なのですが、第一サーバーのURLが http://www.test1.com/ だったとしたら
> :80 を付けなくても80番ポートに転送されますよね?
> それを第二サーバーでは http://www.test2.com:8080/ とわざわざポート番号も付けなくてはなりませんが
> http://www.test2.com/ とアクセスしたときでも自動で8080番ポートに転送するようにはできませんか?
HTTP の仕組みを理解してください。
1. ブラウザで、http://www.example.com/ と入力したとします。
2. ブラウザは DNS を参照して、www.example.com の IP アドレスを取得します。
3. URL からポート番号を探しますが、見つからないので 80 番を使用することに決めます。
4. ブラウザは、取得した IP の 80 番ポートへ接続要求を送ります。
5. サーバは、届いた接続要求に応答します。
※ ここで、クライアント~サーバ間の接続が確立してしまいます。
※ ルータで振り分けるにしても、使用されたホスト名を知る方法はありません。
6. サーバに繋がったら、ブラウザは次のような文字列を送信します。
| GET / HTTP/1.0
| User-Agent: HogeHoge/1.0
| Host: www.example.com
| ……等々
|
※ここで初めて、クライアントの使用したホスト名が通知されます。
つまり HTTP サーバとして動作する装置で無い限り、使用したホスト名を判別することは不可能です。
ポート番号を同じにする場合は HTTPd なり PROXYd なり、入り口を 1 つのマシンで受けることになります。
No.13069 投稿時間:2003年10月25日(Sat) 02:03 投稿者名:鷹の巣@松阪 URL:http://sakaguch.com/
> HTTP の仕組みを理解してください。
> 6. サーバに繋がったら、ブラウザは次のような文字列を送信します。
> | GET / HTTP/1.0
> | User-Agent: HogeHoge/1.0
> | Host: www.example.com
> | ……等々
> |
> ※ここで初めて、クライアントの使用したホスト名が通知されます。
>
> つまり HTTP サーバとして動作する装置で無い限り、使用したホスト名を判別することは不可能です。
> ポート番号を同じにする場合は HTTPd なり PROXYd なり、入り口を 1 つのマシンで受けることになります。
| GET /index.html HTTP/1.0[改行+復帰][改行+復帰]
| GET /index.html HTTP/1.1[改行+復帰]
| Host: www.example.com[改行+復帰][改行+復帰]
現在のブラウザでは、HTTP/1.1で、Host名が必ずつくので、Webサーバーのバーチャルホスト(名前振り分け)が使用出来ます。
「Webサーバー」と「バーチャルホスト」で検索して下さい。
参考:バーチャルホストの動作テスト用ウェブページ
http://sakaguch.com/SetVirtualHost.html
No.13070 投稿時間:2003年10月25日(Sat) 07:51 投稿者名:OAK URL:
簡単に実現する方法の例として
http://aaa.ccc/ をAと言うPCへ
http://bbb.ccc/ をBと言うPCへ それぞれ使いたい場合
80ポートはAに、8080ポートはBに向くようルーターで設定し
Aのpcにバーチャルホストをセットして、両方のドメインを扱えるようにして
bbb.ccc のディレクトリに
Redirect permanent / http://bbb.ccc:8080/ とでも書けばhttp://bbb.ccc/で来た物は http://bbb.ccc:8080/ へ転送されますのでBで実行されます
或いは<html><frameset><frame src="http://bbb.ccc:8080/"></frameset></html>
とindex.html に書けばフレーム転送が出来ます