投稿日:2003年10月23日 作成鷹の巣

No.13048 サービスポート番号8080を省略したURLで、8080番のURLに自動転送する方法は?



サービスポート番号8080を省略したURLで、8080番のURLに自動転送する方法は?

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番ポートに転送するようにはできませんか?


アクセスポート番号を同じにする場合は、HTTPdなりPROXYdなり、入口を1つのマシンで受けることになります。

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


追記2。

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 に書けばフレーム転送が出来ます


|目次|掲示板|過去ログ目次|▲頁先頭|