Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Введение
В службах IIS можно создавать сайты, приложения и виртуальные каталоги для обмена информацией с пользователями через Интернет, интранет или экстранет. Хотя эти понятия существуют в более ранних версиях IIS, некоторые изменения в IIS 7 и выше влияют на определение и функциональность этих понятий. Самое главное, сайты, приложения и виртуальные каталоги теперь работают вместе в иерархической связи в качестве основных стандартных блоков для размещения содержимого в Интернете и предоставления веб-служб.
В этой статье представлен краткий обзор приложений в IIS 6.0, чтобы лучше понять различия, представленные в IIS 7. Затем описываются основные понятия сайтов, приложений и виртуальных каталогов в IIS и вводится секция <sites> в конфигурации.
Сведения о сайтах, приложениях и виртуальных каталогах в IIS 6.0
В IIS 6.0 понятия виртуальных каталогов и приложений запутались. Хотя они обсуждались как отдельные понятия (и они были концептуально отличаются от точки зрения функциональности), приложение не было физически отдельным объектом из виртуального каталога. В IIS 6.0 приложение было просто виртуальным каталогом с одним или сочетанием следующих свойств в метабазе: AppFriendlyName, AppRoot, AppIsolated и AppPoolID.
Замечание
Корневой каталог сайта является исключением, так как он неявно рассматривается как приложение, даже если эти свойства не заданы.
Приложения были менее важными для IIS, чем в технологиях, которые расширяют функциональные возможности веб-сервера, такие как активные страницы сервера (ASP), интерфейс программирования приложений Интернета (ISAPI) и ASP.NET. Эти технологии предоставляют дополнительные функции и обработку приложений, размещенных в IIS 6.0, и позволяют разработчикам создавать более сложные приложения. Важным вопросом для IIS 6.0 было изоляция таких приложений таким образом, чтобы запретить приложениям в одном пуле приложений влиять на приложения в другом пуле приложений на сервере.
Сведения о сайтах, приложениях и виртуальных каталогах в IIS 7 и более поздних версиях
IIS 7 и более поздние версии формализуют концепции сайтов, приложений и виртуальных каталогов. Виртуальные каталоги и приложения теперь являются отдельными объектами, и они существуют в иерархической связи в схеме конфигурации IIS. Кратко говоря, сайт содержит одно или несколько приложений, приложение содержит один или несколько виртуальных каталогов, а виртуальный каталог сопоставляется с физическим каталогом на компьютере.
Как и в IIS 6.0, сайт содержит все содержимое, как статическое, так и динамическое, связанное с этим сайтом. Однако каждый сайт должен содержать по крайней мере одно приложение, которое называется корневым приложением. И каждое приложение (включая корневое приложение) должно содержать по крайней мере один виртуальный каталог, который называется корневым виртуальным каталогом. Эти объекты работают вместе для формирования сайта.
Кроме того, в IIS 7 и более поздних версиях концепция приложения теперь имеет смысл как для IIS, так и для технологий, расширяющих функциональные возможности IIS. Приложение — это объект, важный для сервера во время выполнения. Это связано с тем, что конвейеры обработки запросов IIS и ASP.NET были объединены в IIS 7 и выше, чтобы контент мог воспользоваться функциональностью, ранее предоставляемой только для приложений управляемого кода. Например, каждое управляемое кодом приложение выполняется в домене приложения (AppDomain). Приложение может иметь несколько виртуальных каталогов, и каждый из них будет обслуживаться тем же доменом приложения, что и приложение, к которому они относятся.
В следующих разделах подробно описываются сайты, приложения, виртуальные каталоги и связанные с ними конфигурации.
Sites
Сайт — это контейнер для приложений и виртуальных каталогов, к нему можно получить доступ с помощью одной или нескольких уникальных привязок.
Привязка включает два атрибута, важные для взаимодействия: протокол привязки и сведения о привязке. Протокол привязки определяет протокол, с помощью которого происходит взаимодействие между сервером и клиентом. Сведения о привязке определяют сведения, используемые для доступа к сайту. Например, протокол привязки веб-сайта может быть HTTP или HTTPS, а сведения о привязке — это сочетание IP-адреса, порта и необязательного заголовка узла.
Сайт может содержать несколько привязок, если для сайта требуются разные протоколы или сведения о привязке. В более ранних версиях IIS поддерживаются только протоколы HTTP и HTTPS. Например, веб-сайт может иметь как привязку HTTP, так и привязку HTTPS, когда разделы сайта требуют безопасного обмена данными по протоколу HTTPS.
В IIS 7 и более поздних версиях привязки могут применяться к любому протоколу. Служба активации процессов Windows (WAS) — это новая служба, которая позволяет службам IIS использовать дополнительные протоколы. Эта служба сохраняет знакомую модель процесса IIS 6.0, например пулы приложений и активацию процесса на основе сообщений, а также функции размещения, такие как быстрая защита от сбоев, мониторинг работоспособности и переработка. Тем не менее, WAS удаляет зависимость от HTTP из архитектуры активации. Это полезно для технологий, которые обеспечивают взаимодействие между приложениями в веб-службах по стандартным протоколам. Модель программирования Windows Communication Foundation (WCF) — это одна из таких технологий, которая может способствовать обмену данными по стандартным протоколам TCP, Microsoft Message Queuing (MSMQ) и именованным каналам. Это позволяет приложениям, используюющим протоколы связи, воспользоваться преимуществами функций IIS, таких как перезапуск процессов, быстрая защита от сбоя и конфигурация, которые ранее были доступны только для приложений на основе HTTP. Дополнительные сведения о модели программирования WCF см. в Windows Communication Foundation в MSDN.
Помимо приложений (которые содержат виртуальные каталоги) и указания привязок, к сайту относятся следующие параметры конфигурации:
- Ограничения: настройте параметры, чтобы ограничить объем пропускной способности, количество подключений или время, разрешенное для подключений к сайту.
- Ведение журнала: настройка параметров для обработки и хранения файлов журналов для сайта.
- Журналы трассировки неудачных запросов: настройте параметры для трассировки неудачных запросов для сайта.
Приложения
Приложение — это группа файлов, которые предоставляют содержимое или предоставляют службы по протоколам, таким как HTTP. При создании приложения в IIS путь приложения становится частью URL-адреса сайта.
В IIS 7 и более поздних версиях каждый сайт должен иметь приложение, которое называется корневым приложением или приложением по умолчанию. Однако сайт может иметь несколько приложений. Например, у вас может быть веб-сайт онлайн-коммерции с несколькими приложениями, например приложение корзины для покупок, которое позволяет пользователям собирать элементы во время покупок и приложение для входа, которое позволяет пользователям отозвать сохраненные данные оплаты при совершении покупки.
Помимо принадлежности к сайту, приложение принадлежит пулу приложений, который изолирует приложение от приложений в других пулах приложений на сервере. В случае приложений управляемого кода обязательно свяжите приложение с пулом приложений, на котором выполняется версия .NET Framework, которую требует ваше приложение.
Как описано в разделе "Сайты" данной статьи, IIS поддерживает HTTP и HTTPS по умолчанию, но также можно использовать дополнительные протоколы. Для каждого сайта необходимо указать одну или несколько привязок для взаимодействия с содержимым сайта и доступа к ним. Для взаимодействия приложения с помощью протокола, указанного в привязке родительского сайта, необходимо включить протокол. Для этого укажите протокол в атрибуте enabledProtocols для приложения и убедитесь, что на сервере есть соответствующий адаптер прослушивателя и указан в <listenerAdapters> разделе конфигурации.
Виртуальные каталоги
Виртуальный каталог — это имя каталога (также называемое путем), указанное в службах информации Интернета (IIS) и сопоставленное с физическим каталогом на локальном или удаленном сервере. Затем имя каталога становится частью URL-адреса приложения, и пользователи могут запрашивать URL-адрес из браузера для доступа к содержимому в физическом каталоге, например веб-странице или списку дополнительных каталогов и файлов. Если указать другое имя виртуального каталога, чем физический каталог, пользователям сложнее обнаружить фактическую физическую структуру файлов на сервере, так как URL-адрес не сопоставляется непосредственно с корнем сайта.
В IIS 7 и более поздних версиях каждое приложение должно иметь виртуальный каталог, который называется корневым виртуальным каталогом и сопоставляет приложение с физическим каталогом, содержащим содержимое приложения. Однако приложение может иметь несколько виртуальных каталогов. Например, вы можете использовать виртуальный каталог, если требуется, чтобы приложение включало изображения из другого расположения в файловой системе, но не хотите перемещать файлы изображений в физический каталог, сопоставленный с корневым виртуальным каталогом приложения.
По умолчанию службы IIS используют конфигурацию из файлов Web.config в физическом каталоге, с которым сопоставлен виртуальный каталог, а также во всех дочерних каталогах этого физического каталога. Если вы не хотите использовать файлы Web.config в дочерних каталогах, укажите false для атрибута allowSubDirConfig в виртуальном каталоге.
При необходимости, если необходимо указать учетные данные и метод для доступа к виртуальному каталогу, можно указать значения атрибутов имени пользователя, пароля и входа в систему.
Конфигурация IIS: <sites> раздел
Ознакомьтесь с разделом по умолчанию <sites> в IIS 7 и более поздних версиях. Это то, что находится в файле ApplicationHost.config (расположено %windir%\system32\inetsrv\config\) после установки IIS в Windows Server® 2008.
<sites>
<site name="Default Web Site" id="1">
<application path="/">
<virtualDirectory path="/" physicalPath="%SystemDrive%\inetpub\wwwroot" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:80:" />
</bindings>
</site>
<siteDefaults>
<logFile logFormat="W3C" directory="%SystemDrive%\inetpub\logs\LogFiles" />
<traceFailedRequestsLogging directory="%SystemDrive%\inetpub\logs\FailedReqLogFiles" />
</siteDefaults>
<applicationDefaults applicationPool="DefaultAppPool" />
<virtualDirectoryDefaults allowSubDirConfig="true" />
</sites>
При отображении одного "/" в поле пути известно, что это корневой объект. В зависимости от того, находится ли он в разделе приложения или виртуального каталога, это корневое приложение или корневой виртуальный каталог.
Элементы по умолчанию
В следующем разделе перечислены коллекции и элементы раздела <sites> , а также их иерархическая связь в <sites> разделе.
<sites> section
<site> collection
<bindings> collection
<binding> element
<clear> element
<limits> element
<logFile> element
<traceFailedRequestsLogging> element
<application> collection
<virtualDirectory> collection
<virtualDirectoryDefaults> element
<applicationDefaults> element
<virtualDirectoryDefaults> element
<siteDefaults> element
<bindings> collection
<binding> element
<clear> element
<limits> element
<logFile> element
<traceFailedRequestsLogging> element
<applicationDefaults> element
<virtualDirectoryDefaults> element
Обратите внимание, что в нескольких местах отображаются два элемента: <applicationDefaults> элемент и <virtualDirectoryDefaults> элемент. Существует также элемент <siteDefaults>, хотя он появляется только один раз, так как может быть сконфигурирован только в одном месте в разделе <sites>. Элементы по умолчанию являются особыми, так как они позволяют настраивать значения по умолчанию для атрибутов, а не повторять одинаковые значения в каждой коллекции.
При настройке атрибута на нескольких уровнях используется значение на самом низком уровне. Например, если вы укажете значение по умолчанию в элементе как в <applicationDefaults> разделе, так и в <site> коллекции, будет использоваться значение из <site> коллекции. Кроме того, если один и тот же атрибут или дочерний элемент настроен как в элементе по умолчанию, так и в коллекции объекта, будет использоваться значение в коллекции. Например, если вы настроите атрибут в <applicationDefaults> элементе и коллекции <application> , будет использоваться значение из <application> коллекции.
В следующей таблице указывается, в каких родительских элементах <applicationDefaults> можно настроить элемент, и описывается влияние, которое имеют значения в приложениях.
| Родительский элемент | Описание |
|---|---|
Раздел <sites> |
Задает параметры по умолчанию для всех приложений на сервере. |
Коллекция <site> |
Задает параметры по умолчанию для всех приложений на родительском сайте. |
В следующей таблице указывается, в каких родительских элементах <virtualDirectoryDefaults> можно настроить элемент, и описывается влияние, которое имеют значения в виртуальных каталогах.
| Родительский элемент | Описание |
|---|---|
Раздел <sites> |
Задает параметры по умолчанию для всех виртуальных каталогов на сервере. |
Коллекция <site> |
Задает параметры по умолчанию для всех виртуальных каталогов на родительском сайте. |
Коллекция <application> |
Задает параметры по умолчанию для всех виртуальных каталогов в родительском приложении. |
Сводка
Теперь вы должны лучше понять сайты, приложения и виртуальные каталоги в IIS 7 и более поздних версиях. В отличие от IIS 6.0, приложения и виртуальные каталоги стали отдельными объектами в конфигурации, что подчеркивает их уникальное назначение веб-серверу и их связь с сайтом. Кроме того, сайты теперь могут содержать приложения, использующие протоколы, отличные от ПРОТОКОЛА HTTP и HTTPS, что расширяет функциональные возможности сайта при сохранении преимуществ модели процесса, представленной в IIS 6.0.
Дополнительные сведения об архитектуре WAS и IIS см. в статье "Архитектура обработки запросов IIS" на IIS.NET. Дополнительные сведения о параметрах конфигурации, рассмотренных в этой статье, см. в разделе "Схема параметров IIS 7 " в MSDN.