Что такое «Веб-сайт по умолчанию»?

30239
oscilatingcretin

Между IIS 6 и IIS 7.5 (а также версиями до 6, я уверен) есть веб-сайт по умолчанию под сайтами. Я никогда не задавался вопросом, что конкретно означает «Default Website». Похоже, что здесь принято ставить все ваши сайты под Default Website, поэтому я задаюсь вопросом, что же такое «по умолчанию», когда вы размещаете другие сайты под ним. Является ли целью веб-сайта по умолчанию хранение конфигураций по умолчанию, которые должны быть унаследованы всеми веб-сайтами под ним, или есть что-то еще для этого? Другими словами, когда я захочу добавить свой новый веб-сайт в папку «Сайты», а не «Веб-сайт по умолчанию».

К вашему сведению, я перевожу веб-сайты IIS 6 на новый сервер и буду использовать IIS 7.5 в будущем, поэтому этот вопрос в основном относится к IIS 7.5.

enter image description here

5
Просто угадайте: может быть, сайт, который отображается, когда заголовок `Host` не отправляется, в старом запросе HTTP 1.0? Или сайт, который нужно выбрать во время рукопожатия HTTPS, когда имя хоста еще не известно? Arjan 10 лет назад 3
Смотрите также: [``directive] (http://httpd.apache.org/docs/2.2/mod/core.html#virtualhost). ;) Daniel B 10 лет назад 0

3 ответа на вопрос

12
harrymc

The Default Website is what its name says, a convenience website that is created when IIS is installed. It can be deleted and replaced by new websites, but its advantage is that it will work "out-of-the-box" with all definitions and permissions already taken care of. Getting the folder and file permissions right is perhaps the biggest headache when creating a new website.

Here is a screenshot of the attributes of the default website :

default attributes

The important attributes above are :

Application pool : Each such pool is nothing else than an instance of w3wp.exe, one per pool (IIS will start more than one under a heavy load). It runs here under the user account named DefaultAppPool, which was already given the minimum required permissions on the folders of the website.

Physical Path : This is the folder which will contain all the files of the website (except for files in virtual folders). Default is C:\inetpub\wwwroot.

Bindings : The important one is http:*.80, meaning the HTTP protocol on port 80. The others are used for example for handling WCF services, and depend on your Windows configuration. It's important to note that port 80 cannot be assigned to another site as long as it's assigned to this one. The full syntax for an entry is protocol/IP_address:port:host_header, where unspecified items are taken to mean "all", so that this default means "all IP addresses and domain names and hosts".

How this works

IIS listens on all the specified ports for requests employing a URL of the general format:

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

The request is then forwarded to the (one) site that handles the specified combination of protocol, domain and port. Unspecified elements have their defaults, or the browser may in some cases ask for missing elements such as username and password.

A path, if specified, is generally appended to the Physical Path in a purely textual manner. For example, the URL http://domain/path/file is translated for the Default website to C:\inetpub\wwwroot\path\file. If the path-name starts with the name of a virtual directory that points to another folder, say D:\myWWWroot, the preceding part of the folder path is replaced, so that the file specification will become D:\myWWWroot\remainder-of-path\file.

Why the Default Website exists

The reason for its existence is simply because there are too many details one has to get right when creating in IIS a website from scratch.

I already touched upon the file and folder permissions, which are the main reason why one may get the infamous "HTTP Error 404.0 - Not Found" message, when one can swear that the specified file exists. This arrives when the user account for the application pool is missing permissions on some folder in the generated physical path.

The Default Website takes over and answers all HTTP requests arriving over port 80 to all IP addresses assigned to the computer where it is installed, translating all HTTP URLs to a physical path to a file inside C:\inetpub\wwwroot.

It's by far much easier to start with the Default Website, modifying its attributes as needed, rather than create everything from scratch, and especially if one has little experience with IIS 7+. The fact that all required user accounts and the permissions on C:\inetpub are predefined may prevent a lot of puzzled head-scratching.

This is also important for security, because by default IIS is pretty invulnerable to hacking. Vulnerabilities are created when the defaults are carelessly modified, or when vulnerable add-on products are added.

1
vembutech

Стандартные сайты:

  • Получать запросы на порт 80
  • Конкретный заголовок хоста не нужен

Запрос к http://domain.com/test/hello.aspx с хостом: домен получен через порт 80 и отправлен на «веб-сайт по умолчанию». Затем он направляется в корневое приложение и корневой виртуальный каталог в это, и физический путь к файлу, обслуживаемому для этого запроса, становится c: inetpubmysitetesthello.aspx.

Индивидуальный сайт:

  • Сайт «MySite» также прослушивает порт 80 всех интерфейсов.
  • только получает запросы, которые указывают «mysite» в заголовке хоста.

Запрос к http://mysite.com/test/hello.aspx с хостом: mysite получен через порт 80 и снова отправлен на «MySite». Он направляется в корневое приложение «/», но внутри этого приложения, он направляется в виртуальный каталог «/ test», поскольку часть URL http://mysite.com/test соответствует пути виртуального каталога. Таким образом, физический путь к файлу, который подается, становится c: inetpubtesthello.aspx.

Примечание. Пул приложений может быть общим как для сайта по умолчанию, так и для пользовательских сайтов.enter image description here

Надеюсь это поможет!

Очень важный момент, который демонстрирует ответ Vembu, - это «стандартный» характер «веб-сайта по умолчанию». HTTP-порт по умолчанию (80) с любым именем хоста будет обрабатывать любые входящие запросы сразу после установки IIS. radiok 10 лет назад 0
0
radiok

На самом деле в этой конкретной теме произошли некоторые изменения с выпуском IIS 7, который был полностью переработан и переписан IIS. Веб-сайт по умолчанию - это просто первый и самый распространенный «сайт» на вашем сервере IIS. Это правда, что вы можете размещать сайты под своим «Веб-сайтом по умолчанию», но это на самом деле вложенные «приложения». Сайты сопоставляются с определенной папкой, а приложения обычно сопоставляются с определенными вложенными подпапками.

В этой теме много чего, я тоже не могу отдать должное. Но чтобы ответить на ваш непосредственный вопрос, это на самом деле просто имя, «по умолчанию» точно не приходит все последствия, которые приходят на ум. Что касается того, почему вы когда-либо будете создавать несколько сайтов по сравнению с созданием приложений на сайте по умолчанию, больше связано с привязками. «Веб-сайт по умолчанию» использует http-порт 80, например, на практике вы, вероятно, не часто будете открывать другой http-порт для обслуживания веб-страниц, поэтому ваши другие веб-сайты, вероятно, будут вложены в «Веб-сайт по умолчанию». Лично я смотрю на «Веб-сайт по умолчанию», больше похожий на корневой веб-сайт.

На iis.net есть действительно полезная статья на эту тему, в которой вы, возможно, не видели « Общие сведения о сайтах, приложениях и виртуальных каталогах» в IIS 7, хотя, как всегда, она не совсем подходит для «Веб-сайта по умолчанию», о котором идет речь.

Вы говорите, что другие сайты с той же установкой IIS * не * будут использовать порт 80? (Я не знаю IIS, но я действительно сомневаюсь в этом, и ответ Вембу, похоже, говорит об обратном.) Arjan 10 лет назад 0
Ничто из того, что я сказал, не указывает, что другие сайты не будут, и, как показывает ответ Vembu, вы можете настроить другой сайт с портом 80, но для любого другого сайта потребуется заголовок узла. radiok 10 лет назад 0

Похожие вопросы