同じIPアドレスに複数のWebサイト(ホスト名)が関連付けられている場合、WebサーバはどのURLをどのように認識するのですか?同じIPアドレスに関連付けられたWebサイト
答えて
仮想ホストを使用します。
これにより、ユーザは、サーバが要求のhost fieldをチェックし、それに応じて応答するリソースを要求nginx本質
http {
index index.html;
server {
server_name www.domain1.com;
access_log logs/domain1.access.log main;
root /var/www/domain1.com/htdocs;
}
server {
server_name www.domain2.com;
access_log logs/domain2.access.log main;
root /var/www/domain2.com/htdocs;
}
}
、から構成例です。
Apache Webサーバーでは、要求をディレクトリに照合するパラメータを含む一連の仮想ホストが定義されています。 UbuntuのWebサーバーの設定の基本的な、デフォルトを使用して、あなたはこのように/ etc/apache2の/サイト対応のディレクトリ内のファイルを持っているでしょう:
は<VirtualHost>
ServerName example.com
DocumentRoot /var/www/example.com/httpdocs
</VirtualHost>
これは、Apacheを伝えることexample.comへのすべての要求ことこのマシンに到着するときは/var/www/example.com/httpdocsフォルダーにルーティングする必要があります。 example.orgへの別のエントリは、別のフォルダを指すことができます。
関連するのは、/ etc/hostsファイルとapache a2ensiteコマンドです。
サーバーの種類によって異なります。 Apacheは.htaccessファイルを使用し、仮想ホストも設定できます。具体的なことをしようとしている場合は、探しているものとホストしているソフトウェアを正確に含めるように質問を編集することができます。これは、あなたが最初にIPとhttpd.confのポートは次のように使用するかを宣言しNameVirtualHostで
を使用してApacheの中で行われている
:あなたのバーチャルホストブロックに続いて
NameVirtualHost 127.0.0.1:80
、あなたが実行します。
<VirtualHost 127.0.0.1:80>
ServerName your_domain
DocumentRoot path_to_your_app
....
</VirtualHost>
これにより、1つのIP上に複数のホストを持つことができます。ただし、IPに直接アクセスすると、最初の仮想ホストに要求が送信されることに注意してください。
HTTP 1.1は「ホスト」ヘッダーと呼ばれるヘッダーを定義します。
Apacheまたは他のどのサーバーにも要求が表示される前に、クライアントブラウザはhttp 1.1要求ヘッダーを作成し、ブラウザに連絡するよう要求しているサーバーに要求を送信します。
リクエストがApacheにヒットすると、サーバーはHTTPリクエストヘッダーのHostヘッダー部分を調べます。あなたは、wireshark、liveHttpHeaders、HTTPfoxまたはあなたが好きなhttp解剖/パケットキャプチャツールを使ってこれを観察することができます。 HTTP 1.1のホストヘッダーは次のように(ホストヘッダがHTTP 1.0または0.9のために定義されていない)フォーマットされた:
ホスト:www.example.com \のR \ nは
Apacheは、このヘッダでそれを探しそれを解析し、一致するホストヘッダーを定義されたディレクトリーまたはアクションにマップするために使用される既存のVirtualHosts表を通過します。
つまり、/ some/path/exampleを指すwww.example.comのNameVirtualHostがある場合は、COM/
NameVirtualhost stuff here
<VirtualHost 127.0.0.1:80>
ServerName www.example.com
DocumentRoot /some/path/example.com
....
</VirtualHost>
あなたのApacheは次のリクエスト取る:
GET /index.html HTTP/1.1\r\n <-- version is a key part
Connection: close\r\n
Host: www.example.com\r\n <-- key part
Accept: blah\r\n
Another: blah\r\n
をヘッダー形式の詳細についてはWikiページをお読みください。
Apacheはホストヘッダーにwww.example.comが含まれていて、 /some/path/example.com/index.htmlファイルを提供します。そのディレクトリとファイル名は要求されたリソースと一致し、 www.example.comを含むホストヘッダーでリクエストを処理するために使用されます。
これはどのように動作するのですか。
- 1. 同じIPアドレスを持つAzure Webアプリケーション
- 2. メモリリークに関連付けられたUIView
- 3. IPアドレスでローカルWebサイトをクロールする
- 4. JavascriptのサーバーのWebサイトURLのIPアドレス
- 5. 単一テーブル継承に関連付けられたHABTM関連
- 6. terraformでEIPの代わりに関連付けられたパブリックIP
- 7. 比較値は同じ文字列に関連付けられます
- 8. Enum関連付けられた値
- 9. 非同期(キューに登録された)メッセージと関連付けられたセッションデータ
- 10. パブリックIPアドレスと既存のドメイン名を関連付ける方法
- 11. 同じモデル内にhas_oneの関連付けを作成する
- 12. 各URLに関連付けられた日付の抽出
- 13. python igraph:ノードとエッジは、ノードに関連付けられた番号に応じて色付けされます
- 14. IMarkerに関連付けられた注釈を見つける
- 15. 同じIPアドレスのコーズを防ぐ
- 16. Rails 4、has_many関連 - 関連付けられたオブジェクトを見つける
- 17. Rails - 同じモデルへの複数の関連付け
- 18. レールでの同じ関連付けの削除と再作成
- 19. 同じタイプのノードをSDNと関連付ける
- 20. 呼び出し元に返されたローカル変数に関連付けられたスタックメモリのアドレス?
- 21. 同じMACアドレスと同じIPアドレスを持つコンピュータを検出する
- 22. アスタリスク、2つのIPアドレス、同じセグメント、同じphisicalインタフェース
- 23. 内部IPアドレスを使用してWebサイトにアクセス
- 24. SQL日付と関連付けられたデータとの結合
- 25. jsonキーに関連付けられた値にアクセスする
- 26. ユーザIDに関連付けられたドロップダウンリストに値を取得
- 27. Webアプリケーションに関連付けられたAPIを見つけるにはどうすればよいですか?
- 28. 同じIISの別のWebサイトからWebサイトフォルダにアクセス
- 29. Unix - ローカルIPをptsに関連付けますか?
- 30. 静的IPをAzure SQLサーバー/データベースに関連付けます。
[NAT](http://en.wikipedia.org/wiki/Network_address_translation)はおそらくあなたが探しているものです。 – Bhaskar