web-dev-qa-db-ja.com

正確には、「デフォルトのウェブサイト」とは何ですか?

IIS 6とIIS 7.5(および6より前のバージョンも同様)の間)には、[サイト]の下にデフォルトのウェブサイトがあります。正確には、既定のWebサイトとは何ですか。ここでは、既定のWebサイトの下にすべてのWebサイトを配置する規則になっているようです。そのため、他のWebサイトをその下に配置すると、何が「既定」であるのか疑問が残ります。既定の目的はその下にあるすべてのWebサイトが継承する必要のあるデフォルト構成を保持するWebサイト、または他に何かあるか?つまり、デフォルトWebサイトではなく、いつ新しいWebサイトをサイトフォルダーに追加する必要があるか。

参考までに、IIS 6つのWebサイトを新しいサーバーに移行し、IIS 7.5以降使用する予定です。このため、この質問は主にIIS 7.5。

enter image description here

8

既定のWebサイトは、その名前のとおり、IISがインストールされたときに作成される便利なWebサイトです。削除して新しいWebサイトに置き換えることができますが、その利点は、 "out-すべての定義とアクセス許可が既に処理されている状態で、フォルダーとファイルのアクセス許可を正しく取得することは、おそらく新しいWebサイトを作成するときの最大の頭痛の種です。

デフォルトのウェブサイトの属性のスクリーンショットは次のとおりです。

default attributes

上記の重要な属性は次のとおりです。

アプリケーションプール:このような各プールは、プールごとに1つずつあるw3wp.exeのインスタンスにすぎません(IISは高負荷で複数起動します)。ここでは、DefaultAppPoolという名前のユーザーアカウントの下で実行されます。このユーザーアカウントには、Webサイトのフォルダーに対する最低限必要なアクセス許可が既に付与されています。

物理パス:これは、Webサイトのすべてのファイルを含むフォルダーです(仮想フォルダー内のファイルを除く)。デフォルトはC:\inetpub\wwwrootです。

Bindings:重要なのはhttp:*.80で、ポート80のHTTPプロトコルを意味します。その他は、たとえばWCFサービスの処理に使用され、Windowsの設定によって異なります。ポート80は、このサイトに割り当てられている限り、別のサイトに割り当てることができないことに注意することが重要です。エントリの完全な構文はprotocol/IP_address:port:Host_headerです。未指定の項目は「すべて」を意味するものと解釈されるため、このデフォルトは「すべてのIPアドレスとドメイン名とホスト」を意味します。

この仕組み

IISは、指定されたすべてのポートで、一般的な形式のURLを使用するリクエストをリッスンします。

protocol://[username:password@]domain[:port]/path/file[?parameters]

次に、要求は、プロトコル、ドメイン、ポートの指定された組み合わせを処理する(1つの)サイトに転送されます。指定されていない要素にはデフォルトがあり、ブラウザがユーザー名やパスワードなどの欠落している要素を要求する場合があります。

パスは、指定されている場合、通常は純粋にテキスト形式で物理パスに追加されます。たとえば、URL http://domain/path/fileは、デフォルトWebサイト用にC:\inetpub\wwwroot\path\fileに変換されます。パス名が別のフォルダを指す仮想ディレクトリの名前、たとえばD:\myWWWrootで始まる場合、フォルダパスの前の部分が置き換えられるため、ファイル指定はD:\myWWWroot\remainder-of-path\fileになります。

デフォルトのウェブサイトが存在する理由

その存在の理由は、IIS Webサイトをゼロから作成するときに、正しく理解しなければならない詳細が多すぎるためです。

指定されたファイルが存在することを誓うことができるときに、悪名高い「HTTPエラー404.0-見つかりません」というメッセージが表示される主な理由である、ファイルとフォルダーのアクセス許可についてはすでに触れました。これは、アプリケーションプールのユーザーアカウントに、生成された物理パスの一部のフォルダーに対するアクセス許可がない場合に発生します。

デフォルトのウェブサイトは、ポート80経由で到着するすべてのHTTPリクエストを、それがインストールされているコンピューターに割り当てられているすべてのIPアドレスに引き継ぎ、すべてのHTTP URLをC:\inetpub\wwwroot内のファイルへの物理パスに変換します。

すべてを最初から作成するよりも、デフォルトのWebサイトから始めて、必要に応じて属性を変更する方がはるかに簡単です。特にIIS 7+の経験が少ない場合)。必要なユーザーアカウントとC:\inetpubの権限が事前に定義されているため、頭を悩ませることが多くなるのを防ぐことができます。

デフォルトではIISはハッキングに対して非常に脆弱です。デフォルトが不注意に変更された場合、または脆弱なアドオン製品が追加された場合に脆弱性が作成されるため、これはセキュリティにとっても重要です。

13
harrymc

デフォルトのウェブサイト:

  • ポート80でリクエストを受信する
  • 特定のホストヘッダーは不要

http://domain.com/test/hello.aspxwith Host:ドメインへのリクエストがポート80で受信され、「デフォルトのWebサイト」にディスパッチされます。その後、ルートアプリケーションにルーティングされます、その中のルート仮想ディレクトリ、およびこのリクエストに対応するファイルの物理パスはc:inetpubmysitetesthello.aspxになります。

カスタマイズされたサイト:

  • 「MySite」サイトは、すべてのインターフェースのポート80でもリッスンします
  • hostヘッダーに「mysite」を指定する要求のみを受け取ります。

Host:mysiteを使用した http://mysite.com/test/hello.aspx へのリクエストは、ポート80で受信され、再び「MySite」にディスパッチされます。ルート「/」にルーティングされます」アプリケーション、ただしそのアプリケーション内では、「/ test」仮想ディレクトリにルーティングされます。これは、URLの http://mysite.com/test の部分が仮想ディレクトリのパスと一致するためです。したがって、提供されるファイルの物理パスはc:inetpubtesthello.aspxになります。

注:アプリケーションプールは、既定のWebサイトとカスタマイズされたサイトの両方に共通にすることができます。enter image description here

お役に立てれば!

1
vembutech

IIS 7のリリースにより、この特定のトピックの周りには実際にかなりの変更がありました。これはIISの完全な再設計と書き直しでした。デフォルトのWebサイトは最初のものであり、最も一般的ですIISサーバー上の "サイト"。サイトは "既定のWebサイト"の下に配置できますが、これらは実際にはネストされた "アプリケーション"です。サイトは特定のフォルダにマップされ、通常、アプリケーションは特定のネストされたサブフォルダーにマップされます。

このトピックには、私が正義を行うことができないことがたくさんあります。しかし、あなたの差し迫った質問に答えるために、それは本当に単なる名前です。「デフォルト」は、頭に浮かぶすべての影響を正確にもたらすわけではありません。なぜ複数のサイトを作成するのか、デフォルトのサイトでアプリケーションを作成するのかは、バインディングとの関係がより重要です。 「デフォルトのWebサイト」は、たとえばhttpポート80を使用します。実際には、Webページを提供するために別のhttpポートを頻繁に開かないため、他のWebサイトは「デフォルトのWebサイト」の下にネストされる可能性があります。個人的には、「デフォルトWebサイト」をルートWebサイトのように見ています。

Iis.netのこのトピックに関して、あなたが見たことがないかもしれない本当に役立つ記事があります IIS 7 のサイト、アプリケーション、および仮想ディレクトリについて)==いつものように、特に問題となっている「デフォルトのWebサイト」についてはあいまいです。

0
radiok