Was genau ist "Default Website"?

30312
oscilatingcretin

Zwischen IIS 6 und IIS 7.5 (und auch Versionen vor Version 6, da bin ich mir sicher), gibt es unter Sites Standardwebsite. Ich habe nie wirklich hinterfragt, was Default-Website genau bedeutet. Es scheint, dass die Konvention hier ist, alle Ihre Websites unter Default Website zu platzieren, so dass ich hinterfragen muss, was so "Default" daran ist, wenn Sie Ihre anderen Websites darunter platzieren. Ist der Zweck einer Standard-Website, Standardkonfigurationen zu speichern, die von allen darunterliegenden Websites vererbt werden müssen, oder gibt es etwas anderes? Mit anderen Worten: Wann würde ich meine neue Website im Gegensatz zum Standard-Website-Ordner zum Ordner "Sites" hinzufügen möchten?

Zu Ihrer Information, ich migriere IIS 6-Websites auf einen neuen Server und werde zukünftig IIS 7.5 verwenden. Diese Frage gilt daher hauptsächlich für IIS 7.5.

enter image description here

5
Nur raten: Vielleicht die Site, die angezeigt wird, wenn kein `Host`-Header in einer alten HTTP 1.0-Anforderung gesendet wird? Oder die Site, die Sie während eines HTTPS-Handshakes auswählen müssen, wenn noch kein Hostname bekannt ist? Arjan vor 10 Jahren 3
Siehe auch: [``Direktive] (http://httpd.apache.org/docs/2.2/mod/core.html#virtualhost). ;) Daniel B vor 10 Jahren 0

3 Antworten auf die Frage

12
harrymc

Die Standardwebsite ist der Name, eine Convenience-Website, die bei der Installation von IIS erstellt wird. Sie kann gelöscht und durch neue Websites ersetzt werden, hat jedoch den Vorteil, dass sie mit allen Definitionen und Berechtigungen "out-of-the-box" funktioniert. Die richtigen Ordner- und Dateiberechtigungen zu erhalten, ist möglicherweise der größte Kopfschmerz beim Erstellen einer neuen Website.

Hier ist ein Screenshot der Attribute der Standard-Website:

Standardattribute

Die wichtigen Attribute oben sind:

Anwendungspool : Jeder dieser Pools ist nichts anderes als eine Instanz von w3wp.exe, einer pro Pool (IIS wird mehr als einer unter hoher Last gestartet). Es wird hier unter dem Benutzerkonto DefaultAppPool ausgeführt, das bereits über die erforderlichen Mindestberechtigungen für die Ordner der Website verfügt.

Physischer Pfad : Dies ist der Ordner, der alle Dateien der Website enthält (außer Dateien in virtuellen Ordnern). Standardeinstellung ist C:\inetpub\wwwroot.

Bindungen : Wichtig ist http:*.80das HTTP-Protokoll an Port 80. Die anderen werden zum Beispiel für die Verwaltung von WCF-Diensten verwendet und hängen von Ihrer Windows-Konfiguration ab. Beachten Sie, dass der Port 80 keinem anderen Standort zugewiesen werden kann, solange er diesem Standort zugewiesen ist. Die vollständige Syntax für einen Eintrag lautet protocol/IP_address:port:host_header, wenn nicht spezifizierte Elemente "alle" bedeuten, so dass diese Standardeinstellung "alle IP-Adressen und Domänennamen und Hosts" bedeutet.

Wie das geht

IIS überwacht alle angegebenen Ports auf Anforderungen, die eine URL des allgemeinen Formats verwenden:

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

Die Anforderung wird dann an die (eine) Site weitergeleitet, die die angegebene Kombination aus Protokoll, Domäne und Port abwickelt. Nicht angegebene Elemente haben ihre Standardwerte, oder der Browser fragt in einigen Fällen nach fehlenden Elementen wie Benutzername und Kennwort.

Wenn ein Pfad angegeben ist, wird er normalerweise rein textlich an den physischen Pfad angehängt. Beispielsweise wird die URL http://domain/path/filefür die Standardwebsite in übersetzt C:\inetpub\wwwroot\path\file. Wenn der Pfadname mit dem Namen eines virtuellen Verzeichnisses beginnt, das auf einen anderen Ordner verweist, D:\myWWWrootwird beispielsweise der vorhergehende Teil des Ordnerpfads ersetzt, so dass die Dateispezifikation wird D:\myWWWroot\remainder-of-path\file.

Warum die Default-Website existiert

Der Grund für seine Existenz liegt einfach darin, dass es zu viele Details gibt, wenn man in IIS eine Website von Grund auf neu erstellen muss.

Ich habe bereits die Datei- und Ordnerberechtigungen angesprochen, die der Hauptgrund sind, warum man die berüchtigte "HTTP Error 404.0 - Not Found" -Nachricht erhalten kann, wenn man schwören kann, dass die angegebene Datei existiert. Dies geschieht, wenn dem Benutzerkonto für den Anwendungspool Berechtigungen für einige Ordner im generierten physischen Pfad fehlen.

Die Standard-Website übernimmt alle über Port 80 eingehenden HTTP-Anforderungen an alle IP-Adressen, die dem Computer zugewiesen sind, auf dem sie installiert ist, und übersetzt alle HTTP-URLs in einen physischen Pfad zu einer darin enthaltenen Datei C:\inetpub\wwwroot.

Es ist viel einfacher, mit der Default-Website zu beginnen und die Attribute nach Bedarf zu ändern, anstatt alles von Grund auf neu zu erstellen, insbesondere wenn man wenig Erfahrung mit IIS 7+ hat. Die Tatsache, dass alle erforderlichen Benutzerkonten und die Berechtigungen für C:\inetpub vordefiniert sind, kann viele verwirrende Kopfzerkratzungen verhindern.

Dies ist auch für die Sicherheit wichtig, da IIS standardmäßig für Hacker ziemlich unverwundbar ist. Sicherheitsanfälligkeiten werden erstellt, wenn die Standardwerte unachtsam geändert werden oder wenn anfällige Add-On-Produkte hinzugefügt werden.

1
vembutech

Standard-Websites:

  • Empfangen Sie Anforderungen an Port 80
  • Ein bestimmter Hostheader wird nicht benötigt

Eine Anforderung an http://domain.com/test/hello.aspxwith host: domain wird an Port 80 empfangen und an die "Standardwebsite" gesendet. Anschließend werden sie an die Root-Anwendung und das darin enthaltene virtuelle Stammverzeichnis weitergeleitet Wenn dies der Fall ist, wird der physische Pfad der für diese Anforderung bereitgestellten Datei zu c: inetpubmysitetesthello.aspx.

Angepasste Site:

  • Die "MySite" -Site überwacht auch den Port 80 aller Schnittstellen
  • empfängt nur Anforderungen, die "mysite" im Hostheader angeben.

Eine Anfrage an http://mysite.com/test/hello.aspx mit host: mysite wird an Port 80 empfangen und erneut an „MySite“ gesendet. Sie wird an die Root-Anwendung „/“ weitergeleitet, jedoch innerhalb dieser Anwendung wird in das virtuelle Verzeichnis "/ test" geroutet, da der http://mysite.com/test-Teil der URL mit dem Pfad des virtuellen Verzeichnisses übereinstimmt.So wird der physische Pfad der bereitgestellten Datei zu c: inetpubtesthello.aspx.

Hinweis: Der Anwendungspool kann sowohl für die Standardwebsite als auch für angepasste Websites gelten.enter image description here

Hoffe das hilft!

Eine sehr wichtige Sache, die Vembus Antwort zeigt, ist die "Standard" -Eigenschaft der "Standardwebsite". Der Standard-HTTP-Port (80) mit einem beliebigen Hostnamen würde eingehende Anforderungen nach einer IIS-Installation sofort verarbeiten. radiok vor 10 Jahren 0
0
radiok

Mit dem Erscheinen von IIS 7, das ein komplettes Redesign und eine Neugestaltung von IIS war, gab es bei diesem spezifischen Thema tatsächlich einige Veränderungen. Die Standardwebsite ist einfach die erste und häufigste "Site" auf Ihrem IIS-Server. Es ist wahr, Sie können Sites unter Ihrer "Standardwebsite" platzieren, aber dies sind tatsächlich geschachtelte "Anwendungen". Sites werden einem bestimmten Ordner zugeordnet, und Anwendungen werden im Allgemeinen bestimmten verschachtelten Unterordnern zugeordnet.

Es gibt viel zu diesem Thema, das ich auch nicht gerecht werden kann. Aber um Ihre unmittelbare Frage zu beantworten, es ist wirklich nur ein Name, "Default" hat nicht alle Auswirkungen, die Ihnen in den Sinn kommen. Die Gründe, warum Sie jemals mehrere Sites erstellen sollten, im Vergleich zur Erstellung von Anwendungen unter Ihrer Standard-Site hat mehr mit den Bindungen zu tun. Die "Standardwebsite" verwendet beispielsweise HTTP-Port 80. In der Praxis werden Sie wahrscheinlich nicht häufig einen weiteren HTTP-Port zum Bereitstellen von Webseiten öffnen. Daher werden Ihre anderen Websites wahrscheinlich unter der "Standardwebsite" verschachtelt. Ich persönlich schaue auf die "Default-Website" eher wie die Stammwebsite.

Auf iis.net gibt es einen wirklich nützlichen Artikel zu diesem Thema, in dem Sie möglicherweise Informationen über Sites, Anwendungen und virtuelle Verzeichnisse in IIS 7 nicht gesehen haben, obwohl es nach wie vor unbestimmt ist, was die betreffende "Standardwebsite" angeht.

Wollen Sie damit sagen, dass andere Sites auf derselben IIS-Installation Port 80 * nicht * verwenden würden? (Ich kenne IIS nicht, aber ich bezweifle das wirklich und Vembus Antwort scheint anders zu sein.) Arjan vor 10 Jahren 0
Nichts, was ich gesagt habe, zeigt an, dass andere Sites dies nicht tun würden. Wie Vembus Antwort anzeigt, können Sie eine andere Site mit Port 80 einrichten. Für jede andere Site ist jedoch ein Hostheader erforderlich. radiok vor 10 Jahren 0